orgchart 3.6.0 → 3.8.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/README.md +64 -4
- package/demo/css/fontawesome.min.css +9 -0
- package/demo/custom-icons.html +146 -0
- package/demo/data-prop-compact.html +82 -0
- package/demo/{isHybrid.html → data-prop-hybrid.html} +1 -1
- package/demo/index.html +3 -1
- package/demo/multiple-layers.html +4 -4
- package/demo/option-createNode.html +2 -2
- package/demo/pan-zoom.html +3 -0
- package/demo/vertical-level.html +17 -17
- package/demo/webfonts/fa-brands-400.ttf +0 -0
- package/demo/webfonts/fa-brands-400.woff2 +0 -0
- package/demo/webfonts/fa-regular-400.ttf +0 -0
- package/demo/webfonts/fa-regular-400.woff2 +0 -0
- package/demo/webfonts/fa-solid-900.ttf +0 -0
- package/demo/webfonts/fa-solid-900.woff2 +0 -0
- package/demo/webfonts/fa-v4compatibility.ttf +0 -0
- package/demo/webfonts/fa-v4compatibility.woff2 +0 -0
- package/dist/css/jquery.orgchart.css +311 -156
- package/dist/css/jquery.orgchart.min.css +1 -1
- package/dist/js/jquery.orgchart.js +128 -56
- package/dist/js/jquery.orgchart.min.js +4 -1
- package/dist/js/jquery.orgchart.min.js.map +1 -1
- package/gulpfile.js +1 -1
- package/package.json +1 -1
- package/src/css/jquery.orgchart.css +311 -156
- package/src/js/jquery.orgchart.js +128 -56
- package/test/integration/init-tests.js +8 -8
- package/test/visual-regression/zoom/__image_snapshots__/__diff_output__/test-js-orgchart-visual-regression-tests-zoomin-correctly-1-snap-diff.png +0 -0
- package/test/visual-regression/zoom/__image_snapshots__/__diff_output__/test-js-orgchart-visual-regression-tests-zoomout-correctly-1-snap-diff.png +0 -0
- package/test/visual-regression/zoom/__image_snapshots__/test-js-orgchart-visual-regression-tests-zoomin-correctly-1-snap.png +0 -0
- package/test/visual-regression/zoom/__image_snapshots__/test-js-orgchart-visual-regression-tests-zoomout-correctly-1-snap.png +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
.orgchart{box-sizing:border-box;display:inline-block;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:linear-gradient(90deg,rgba(200,0,0,.15) 10%,rgba(0,0,0,0) 10%),linear-gradient(rgba(200,0,0,.15) 10%,rgba(0,0,0,0) 10%);background-size:10px 10px;border:1px dashed transparent;padding:20px 20px 0 20px}.orgchart .hidden,.orgchart~.hidden{display:none!important}.orgchart.b2t{transform:rotate(180deg)}.orgchart.l2r{position:absolute;transform:rotate(-90deg) rotateY(180deg);transform-origin:left top;text-align:center}.orgchart.r2l{position:absolute;transform:rotate(90deg);transform-origin:left top;text-align:center}.orgchart~.mask{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999;text-align:center;background-color:rgba(0,0,0,.3)}.orgchart~.mask .spinner{position:absolute;top:calc(50% - 50px);left:calc(50% - 50px)}.orgchart>.spinner::before,.orgchart~.mask .spinner::before{width:100px;height:100px;border-width:10px;border-radius:50px;border-top-color:rgba(68,157,68,.8);border-bottom-color:rgba(68,157,68,.8);border-left-color:rgba(68,157,68,.8)}.orgchart .nodes{display:flex;list-style:none;padding-left:0;margin:0}.orgchart .hierarchy{position:relative}.orgchart .hierarchy::before{content:"";position:absolute;top:-11px;left:0;width:100%;border-top:2px solid rgba(217,83,79,.8);box-sizing:border-box}.orgchart .hierarchy.isSiblingsCollapsed.left-sibs::before,.orgchart .hierarchy:first-child::before{left:calc(50% - 1px);width:calc(50% + 1px)}.orgchart .hierarchy.isSiblingsCollapsed.right-sibs::before,.orgchart .hierarchy:last-child::before{width:calc(50% + 1px)}.orgchart .hierarchy:not(.hidden):only-child::before{width:2px}.orgchart .isAncestorsCollapsed:only-child::before,.orgchart .isAncestorsCollapsed>.node::before,.orgchart .isChildrenCollapsed>.node:not(:only-child)::after,.orgchart .isCollapsedDescendant::before,.orgchart .isCollapsedDescendant>.node::after,.orgchart .isCollapsedDescendant>.node::before,.orgchart .isCollapsedSibling .hierarchy::before,.orgchart .isCollapsedSibling::before,.orgchart .isSiblingsCollapsed.left-sibs.right-sibs::before,.orgchart .isSiblingsCollapsed.left-sibs:last-child:before,.orgchart .isSiblingsCollapsed.right-sibs:first-child:before,.orgchart .isSiblingsCollapsed:not(.left-sibs):not(.right-sibs)::before,.orgchart>.nodes>.hierarchy::before{content:none}.orgchart .node:not(:only-child)::after{content:"";position:absolute;bottom:-11px;left:calc(50% - 1px);width:2px;height:9px;background-color:rgba(217,83,79,.8)}.orgchart ul li .node.allowedDrop{border-color:rgba(68,157,68,.9)}.orgchart ul li .node.currentDropTarget{background-color:rgba(68,157,68,.9)}.orgchart ul li .node.selected{background-color:rgba(238,217,54,.5)}.orgchart ul li .node:hover{background-color:rgba(238,217,54,.5)}.orgchart>ul>li>ul li>.node::before{content:"";position:absolute;top:var(--top,-11px);left:calc(50% - 1px);width:2px;height:var(--height,9px);background-color:rgba(217,83,79,.8)}.orgchart>ul>li>ul li.isSiblingsCollapsed>.node::before{top:var(--top-cross-point,-13px);height:var(--height-cross-point,11px)}.orgchart .node{box-sizing:border-box;display:inline-block;position:relative;margin:0 0 20px 0;padding:3px;border:2px dashed transparent;text-align:center}.orgchart.l2r .node,.orgchart.r2l .node{width:50px;height:140px}.orgchart .node:hover{background-color:rgba(238,217,54,.5);transition:.5s;cursor:default;z-index:20}.orgchart .node.focused{background-color:rgba(238,217,54,.5)}.orgchart .ghost-node{position:fixed;left:-10000px;top:-10000px}.orgchart .ghost-node rect{fill:#fff;stroke:#bf0000}.orgchart .node.allowedDrop{border-color:rgba(68,157,68,.9)}.orgchart .node>.spinner{position:absolute;top:calc(50% - 1rem);left:calc(50% - 1rem)}.orgchart .node>.spinner::before{width:2rem;height:2rem;border-width:.2rem;border-radius:1rem;border-top-color:rgba(68,157,68,.8);border-bottom-color:rgba(68,157,68,.8);border-left-color:rgba(68,157,68,.8)}.orgchart .node .title{box-sizing:border-box;padding:2px;width:130px;text-align:center;font-size:.75rem;font-weight:700;height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:rgba(217,83,79,.8);color:#fff;border-radius:4px 4px 0 0}.orgchart.b2t .node .title{transform:rotate(-180deg);transform-origin:center bottom}.orgchart.l2r .node .title{transform:rotate(-90deg) translate(-45px,-45px) rotateY(180deg);transform-origin:bottom center}.orgchart.r2l .node .title{transform:rotate(-90deg) translate(-45px,-45px);transform-origin:bottom center}.orgchart .node .title .symbol{float:left;margin-top:12px;margin-left:2px}.orgchart .node .title .symbol::before{background-color:#fff;border-color:rgba(217,83,79,.8)}.orgchart .node .title .symbol::after{background-color:#fff}.orgchart .node .content{box-sizing:border-box;padding:2px;height:20px;font-size:.625rem;border:1px solid rgba(217,83,79,.8);border-radius:0 0 4px 4px;text-align:center;background-color:#fff;color:#333;text-overflow:ellipsis;white-space:nowrap}.orgchart.b2t .node .content{transform:rotate(180deg);transform-origin:center top}.orgchart.l2r .node .content{transform:rotate(-90deg) translate(-45px,-45px) rotateY(180deg);transform-origin:top center;width:130px}.orgchart.r2l .node .content{transform:rotate(-90deg) translate(-45px,-45px);transform-origin:top center;width:130px}.orgchart .node .edge{position:absolute;cursor:default;transition:.2s}.orgchart .node .edge::before{border-color:rgba(68,157,68,.5)}.orgchart.noncollapsable .node .edge{display:none}.orgchart .node .edge:hover{cursor:pointer}.orgchart .edge:hover::before{border-color:#449d44}.orgchart .node .verticalEdge{width:calc(100% - 6px);width:-webkit-calc(100% - 6px);width:-moz-calc(100% - 6px);height:10px;left:3px}.orgchart .node .verticalEdge::before{position:absolute;left:calc(50% - .3125rem)}.orgchart .node .topEdge{top:-2px}.orgchart .node .topEdge.oci-chevron-up::before{top:2px}.orgchart .node .topEdge.oci-chevron-down::before{bottom:3px}.orgchart .node .bottomEdge{bottom:-2px}.orgchart .node .bottomEdge.oci-chevron-up::before{bottom:-3px}.orgchart .node .bottomEdge.oci-chevron-down::before{bottom:1px}.orgchart .node .horizontalEdge{width:10px;height:calc(100% - 6px);height:-webkit-calc(100% - 6px);height:-moz-calc(100% - 6px);top:3px}.orgchart .node .rightEdge{right:-2px}.orgchart .node .leftEdge{left:-2px}.orgchart .node .horizontalEdge::before{position:absolute;top:calc(50% - .3125rem)}.orgchart .node .rightEdge.oci-chevron-left::before{right:-3px}.orgchart .node .rightEdge.oci-chevron-right::before{right:1px}.orgchart .node .leftEdge.oci-chevron-right::before{left:-3px}.orgchart .node .leftEdge.oci-chevron-left::before{left:1px}.orgchart .node .toggleBtn{position:absolute;left:5px;bottom:-2px;width:1rem;height:1rem}.orgchart .node .toggleBtn::before{background-color:rgba(68,157,68,.6)}.orgchart .node .toggleBtn:hover::before{background-color:#449d44}.oc-export-btn{margin-left:.5rem;padding:.5rem 1rem}.orgchart .node{transition:transform .3s,opacity .3s}.orgchart .slide-down{opacity:0;transform:translateY(40px)}.orgchart.l2r .node.slide-down,.orgchart.r2l .node.slide-down{transform:translateY(130px)}.orgchart .slide-up{opacity:0;transform:translateY(-40px)}.orgchart.l2r .node.slide-up,.orgchart.r2l .node.slide-up{transform:translateY(-130px)}.orgchart .slide-right{opacity:0;transform:translateX(130px)}.orgchart.l2r .node.slide-right,.orgchart.r2l .node.slide-right{transform:translateX(40px)}.orgchart .slide-left{opacity:0;transform:translateX(-130px)}.orgchart.l2r .node.slide-left,.orgchart.r2l .node.slide-left{transform:translateX(-40px)}.orgchart .nodes.vertical{display:block;padding-left:18px}.orgchart .nodes.vertical .nodes{list-style:none;display:block;margin:0;padding-left:18px;text-align:left}.orgchart .nodes.vertical .node{margin-bottom:0}.orgchart .nodes.vertical .node::after,.orgchart .nodes.vertical .node::before{content:none}.orgchart .nodes.vertical>.hierarchy:first-child::before{box-sizing:border-box;top:-11px;height:35px;width:calc(50% - 2px);border-width:2px 0 0 2px}.orgchart .nodes.vertical .hierarchy{position:relative;text-align:left}.orgchart .nodes.vertical .hierarchy::after,.orgchart .nodes.vertical .hierarchy::before{box-sizing:border-box;content:'';position:absolute;left:-6px;border-color:rgba(217,83,79,.8);border-style:solid;border-width:0 0 2px 2px}.orgchart .nodes.vertical .hierarchy::before{top:-4px;height:30px;width:11px}.orgchart .nodes.vertical .hierarchy::after{top:1px;height:100%}.orgchart .nodes.vertical .hierarchy:first-child::after{box-sizing:border-box;top:24px;width:11px;border-width:2px 0 0 2px}.orgchart .nodes.vertical .hierarchy:last-child::after{box-sizing:border-box;border-width:2px 0 0}.oci{display:inline-block;position:relative;font-style:normal;font-family:Arial}.oci-chevron-up::before{content:"";display:inline-block;box-sizing:border-box;vertical-align:text-bottom;width:.625rem;height:.625rem;border-width:0 .2rem .2rem 0;border-style:solid;border-color:#000;background:0 0;transform:rotate(-135deg)}.oci-chevron-right::before{content:"";display:inline-block;box-sizing:border-box;width:.625rem;height:.625rem;border-width:0 .2rem .2rem 0;border-style:solid;border-color:#000;background:0 0;transform:rotate(-45deg)}.oci-chevron-down::before{content:"";display:inline-block;box-sizing:border-box;width:.625rem;height:.625rem;border-width:0 .2rem .2rem 0;border-style:solid;border-color:#000;background:0 0;transform:rotate(45deg)}.oci-chevron-left::before{content:"";display:inline-block;box-sizing:border-box;width:.625rem;height:.625rem;border-width:0 .2rem .2rem 0;border-style:solid;border-color:#000;background:0 0;transform:rotate(135deg)}.oci-leader::before{position:absolute;content:"";display:inline-block;width:.4rem;height:.4rem;border-radius:.2rem;background:#000;top:-.75rem;left:.1rem}.oci-leader::after{position:absolute;content:"";display:inline-block;width:.875rem;height:.375rem;border-radius:.25rem .25rem 0 0;background:#000;top:-.3rem;left:-.125rem}.oci-plus-square::before{content:"+";display:inline-block;vertical-align:text-bottom;text-align:center;width:1rem;height:1rem;background-color:#000;color:#fff}.oci-plus-circle::before{content:"+";display:inline-block;vertical-align:text-bottom;text-align:center;width:1rem;height:1rem;border-radius:.5rem;background-color:#000;color:#fff}.oci-minus-square::before{content:"−";display:inline-block;vertical-align:text-bottom;text-align:center;width:1rem;height:1rem;background-color:#000;color:#fff}.oci-minus-circle::before{content:"−";display:inline-block;vertical-align:text-bottom;text-align:center;width:1rem;height:1rem;border-radius:.5rem;background-color:#000;color:#fff}.oci-arrow-circle-up::before{content:"▲";display:inline-block;text-align:center;vertical-align:text-bottom;width:1rem;height:1rem;border-radius:.5rem;background-color:#000;color:#fff;font-size:.875rem}.oci-arrow-circle-down::before{content:"▼";text-align:center;display:inline-block;vertical-align:text-bottom;width:1rem;height:1rem;border-radius:.5rem;background-color:#000;color:#fff;font-size:.875rem}.oci-info-circle::before{content:"i";display:inline-block;vertical-align:text-bottom;width:1rem;height:1rem;border-radius:.5rem;background-color:#000;color:#fff;text-align:center;font-weight:700}.oci-spinner::before{content:"";vertical-align:text-bottom;display:inline-block;box-sizing:border-box;width:1rem;height:1rem;border:.1rem solid #000;border-right-color:transparent;border-radius:.625rem;animation:oci-infinite-spinning .75s linear infinite}@keyframes oci-infinite-spinning{from{transform:rotate(0)}to{transform:rotate(360deg)}}
|
|
1
|
+
.orgchart{box-sizing:border-box;display:inline-block;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:linear-gradient(to top,rgba(200,0,0,.15) 5%,rgba(0,0,0,0) 5%),linear-gradient(to right,rgba(200,0,0,.15) 5%,rgba(0,0,0,0) 5%),linear-gradient(to bottom,rgba(200,0,0,.15) 5%,rgba(0,0,0,0) 5%),linear-gradient(to left,rgba(200,0,0,.15) 5%,rgba(0,0,0,0) 5%);background-size:10px 10px;padding:20px 20px 0 20px}.orgchart .hidden,.orgchart~.hidden{display:none!important}.orgchart.b2t{transform:rotate(180deg)}.orgchart.l2r{position:absolute;transform:rotate(-90deg) rotateY(180deg);transform-origin:left top;text-align:center}.orgchart.r2l{position:absolute;transform:rotate(90deg);transform-origin:left top;text-align:center}.orgchart~.mask{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999;text-align:center;background-color:rgba(0,0,0,.3)}.orgchart~.mask .spinner{position:absolute;top:calc(50% - 50px);left:calc(50% - 50px)}.orgchart>.spinner::before,.orgchart~.mask .spinner::before{width:100px;height:100px;border-width:10px;border-radius:50px;border-top-color:rgba(68,157,68,.8);border-bottom-color:rgba(68,157,68,.8);border-left-color:rgba(68,157,68,.8)}.orgchart .nodes{display:flex;list-style:none;padding-left:0;margin:0}.orgchart .hierarchy{position:relative}.orgchart .hierarchy::before{content:"";position:absolute;top:-11px;left:0;width:100%;border-top:2px solid rgba(217,83,79,.8);box-sizing:border-box}.orgchart .hierarchy.isSiblingsCollapsed.left-sibs::before,.orgchart .hierarchy:first-child::before{left:calc(50% - 1px);width:calc(50% + 1px)}.orgchart .hierarchy.isSiblingsCollapsed.right-sibs::before,.orgchart .hierarchy:last-child::before{width:calc(50% + 1px)}.orgchart .hierarchy:not(.hidden):only-child::before{width:2px}.orgchart .isAncestorsCollapsed:only-child::before,.orgchart .isAncestorsCollapsed>.node::before,.orgchart .isChildrenCollapsed>.node:not(:only-child)::after,.orgchart .isCollapsedDescendant::before,.orgchart .isCollapsedDescendant>.node::after,.orgchart .isCollapsedDescendant>.node::before,.orgchart .isCollapsedSibling .hierarchy::before,.orgchart .isCollapsedSibling::before,.orgchart .isSiblingsCollapsed.left-sibs.right-sibs::before,.orgchart .isSiblingsCollapsed.left-sibs:last-child:before,.orgchart .isSiblingsCollapsed.right-sibs:first-child:before,.orgchart .isSiblingsCollapsed:not(.left-sibs):not(.right-sibs)::before,.orgchart>.nodes>.hierarchy::before{content:none}.orgchart .node:not(:only-child)::after{content:"";position:absolute;bottom:-12px;left:calc(50% - 1px);width:2px;height:10px;background-color:rgba(217,83,79,.8)}.orgchart ul li .node.allowedDrop{border-color:rgba(68,157,68,.9)}.orgchart ul li .node.currentDropTarget{background-color:rgba(68,157,68,.9)}.orgchart ul li .node.selected{background-color:rgba(238,217,54,.5)}.orgchart ul li .node:hover{background-color:rgba(238,217,54,.5)}.orgchart>ul>li>ul li>.node::before{content:"";position:absolute;top:var(--top,-12px);left:calc(50% - 1px);width:2px;height:var(--height,10px);background-color:rgba(217,83,79,.8)}.orgchart>ul>li>ul li.isSiblingsCollapsed>.node::before{top:var(--top-cross-point,-12px);height:var(--height-cross-point,10px)}.orgchart .node{box-sizing:border-box;display:inline-block;position:relative;margin:0 0 20px 0;padding:3px;border:2px dashed transparent;text-align:center}.orgchart.l2r .node,.orgchart.r2l .node{width:50px;height:140px}.orgchart .node:hover{background-color:rgba(238,217,54,.5);transition:.5s;cursor:default;z-index:20}.orgchart .node.focused{background-color:rgba(238,217,54,.5)}.orgchart .ghost-node{position:fixed;left:-10000px;top:-10000px}.orgchart .ghost-node rect{fill:#fff;stroke:#bf0000}.orgchart .node.allowedDrop{border-color:rgba(68,157,68,.9)}.orgchart .node>.spinner{position:absolute;top:calc(50% - 1rem);left:calc(50% - 1rem)}.orgchart .node>.spinner::before{width:2rem;height:2rem;border-width:.2rem;border-radius:1rem;border-top-color:rgba(68,157,68,.8);border-bottom-color:rgba(68,157,68,.8);border-left-color:rgba(68,157,68,.8)}.orgchart .node .title{box-sizing:border-box;width:130px;text-align:center;font-size:12px;font-weight:700;height:20px;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:rgba(217,83,79,.8);color:#fff;border-radius:4px 4px 0 0}.orgchart.b2t .node .title{transform:rotate(-180deg);transform-origin:center bottom}.orgchart.l2r .node .title{transform:rotate(-90deg) translate(-45px,-45px) rotateY(180deg);transform-origin:bottom center}.orgchart.r2l .node .title{transform:rotate(-90deg) translate(-45px,-45px);transform-origin:bottom center}.orgchart .node .title .parentNodeSymbol{float:left}.orgchart .node .title .parentNodeSymbol::before{color:#fff}.orgchart .node .title .parentNodeSymbol::after{background-color:#fff}.orgchart .node .content{box-sizing:border-box;width:130px;height:20px;line-height:20px;font-size:10px;border:1px solid rgba(217,83,79,.8);border-width:0 1px 1px 1px;border-radius:0 0 .25rem .25rem;text-align:center;background-color:#fff;color:#333;text-overflow:ellipsis;white-space:nowrap}.orgchart.b2t .node .content{transform:rotate(180deg);transform-origin:center top}.orgchart.l2r .node .content{transform:rotate(-90deg) translate(-45px,-45px) rotateY(180deg);transform-origin:top center;width:130px}.orgchart.r2l .node .content{transform:rotate(-90deg) translate(-45px,-45px);transform-origin:top center;width:130px}.orgchart .node .edge{position:absolute;cursor:default;transition:.2s}.orgchart .node .edge::before{border-color:rgba(68,157,68,.5)}.orgchart.noncollapsable .node .edge{display:none}.orgchart .node .edge:hover{cursor:pointer}.orgchart .edge:hover::before{border-color:#449d44}.orgchart .node .verticalEdge{width:calc(100% - 6px);height:10px;left:3px}.orgchart .node .verticalEdge::before{position:absolute;left:calc(50% - 5px)}.orgchart .node .topEdge{top:-2px}.orgchart .node .topEdge.oci-chevron-up::before{top:2px}.orgchart .node .topEdge.oci-chevron-down::before{bottom:3px}.orgchart .node .bottomEdge{bottom:-2px}.orgchart .node .bottomEdge.oci-chevron-up::before{bottom:-3px}.orgchart .node .bottomEdge.oci-chevron-down::before{bottom:1px}.orgchart .node .horizontalEdge{width:10px;height:calc(100% - 6px);top:3px}.orgchart .node .rightEdge{right:-2px}.orgchart .node .leftEdge{left:-2px}.orgchart .node .horizontalEdge::before{position:absolute;top:calc(50% - 5px)}.orgchart .node .leftEdge.oci-chevron-right::before{left:-3px}.orgchart .node .leftEdge.oci-chevron-left::before{left:1px}.orgchart .node .rightEdge.oci-chevron-left::before{right:-3px}.orgchart .node .rightEdge.oci-chevron-right::before{right:1px}.orgchart .node .toggleBtn{position:absolute;left:-2px;bottom:-2px;width:16px;height:16px}.orgchart .node .toggleBtn::before{background-color:rgba(68,157,68,.6);position:absolute;left:0;bottom:0}.orgchart .node .toggleBtn:hover::before{background-color:#449d44}.oc-export-btn{margin-left:.5rem;padding:.5rem 1rem}.orgchart .node{transition:transform .3s,opacity .3s}.orgchart .slide-down{opacity:0;transform:translateY(40px)}.orgchart.l2r .node.slide-down,.orgchart.r2l .node.slide-down{transform:translateY(130px)}.orgchart .slide-up{opacity:0;transform:translateY(-40px)}.orgchart.l2r .node.slide-up,.orgchart.r2l .node.slide-up{transform:translateY(-130px)}.orgchart .slide-right{opacity:0;transform:translateX(130px)}.orgchart.l2r .node.slide-right,.orgchart.r2l .node.slide-right{transform:translateX(40px)}.orgchart .slide-left{opacity:0;transform:translateX(-130px)}.orgchart.l2r .node.slide-left,.orgchart.r2l .node.slide-left{transform:translateX(-40px)}.orgchart .nodes.vertical{display:block;padding-left:10px}.orgchart .nodes.vertical .nodes{list-style:none;display:block;margin:0;padding-left:10px;text-align:left}.orgchart .nodes.vertical .node{margin-bottom:0}.orgchart .nodes.vertical .node::after,.orgchart .nodes.vertical .node::before{content:none}.orgchart .nodes.vertical .hierarchy{position:relative;text-align:left}.orgchart .nodes.vertical .hierarchy::after,.orgchart .nodes.vertical .hierarchy::before{box-sizing:border-box;content:'';position:absolute;left:-6px;border-color:rgba(217,83,79,.8);border-style:solid;border-width:0 0 2px 2px}.orgchart .nodes.vertical .hierarchy::before{top:0;height:26px;width:11px}.orgchart .nodes.vertical .hierarchy::after{bottom:0;height:calc(100% - 24px)}.orgchart .nodes.vertical .hierarchy:last-child::after{border-width:2px 0 0 0}.orgchart .nodes.vertical>.hierarchy:first-child::before{box-sizing:border-box;top:-11px;height:35px;width:calc(50% + 2px);border-width:2px 0 0 2px}.orgchart .nodes.vertical>.hierarchy:first-child::after{box-sizing:border-box;top:24px;width:11px;border-width:2px 0 0 2px}.orgchart .nodes.vertical>.hierarchy:first-child:last-child::after{border-width:2px 0 0 0}.orgchart .hierarchy>.node.compact{position:static;display:grid;width:140px;height:50px;overflow:hidden;background-color:#eee}.orgchart .node.compact.even,.orgchart .node.compact.even:hover{background-color:#eee}.orgchart .node.compact.odd,.orgchart .node.compact.odd:hover{background-color:#fff}.orgchart .node.compact.even>.node.focused,.orgchart .node.compact.even>.node.selected,.orgchart .node.compact.even>.node:hover{background-color:#fff}.orgchart .node.compact.odd>.node.focused,.orgchart .node.compact.odd>.node.selected,.orgchart .node.compact.odd>.node:hover{background-color:#eee}.orgchart .hierarchy>.node.compact.looseMode{display:grid;width:unset;height:unset;overflow:unset}.orgchart .hierarchy>.node.compact::before{top:var(--top-cross-point,-10px)}.orgchart .node.compact>.node.compact{position:relative;display:grid;width:140px;height:50px;overflow:hidden}.orgchart .node.compact .node.compact.looseMode{width:unset;height:unset;overflow:unset}.orgchart .hierarchy>.node.compact>.content{position:absolute;top:25px;left:5px}.orgchart .hierarchy>.node.compact.looseMode>.title{margin-top:5px;margin-left:5px}.orgchart .hierarchy>.node.compact.looseMode>.content{top:30px;left:10px}.orgchart .node.compact>.node.compact.looseMode>.title{margin-top:5px;margin-left:5px}.orgchart .node.compact>.node.compact>.content{position:absolute;top:23px;left:3px}.orgchart .node.compact>.node.compact.looseMode>.content{top:28px;left:8px}.orgchart .node.compact .node{margin-bottom:0}.orgchart .node.compact .node:not(:only-child)::after{content:unset}.orgchart .backToCompactSymbol,.orgchart .backToLooseSymbol{cursor:pointer}.orgchart .hierarchy>.node.compact>.backToCompactSymbol{position:absolute;top:5px;left:5px}.orgchart .hierarchy>.node.compact.looseMode>.backToCompactSymbol{top:10px;left:10px}.orgchart .node.compact>.node.compact.looseMode>.backToCompactSymbol{top:8px;left:8px}.orgchart .node.compact>.node.compact>.backToCompactSymbol{position:absolute;top:3px;left:3px}.orgchart .hierarchy>.node.compact>.backToLooseSymbol{position:absolute;top:25px;right:5px}.orgchart .node.compact>.node.compact>.backToLooseSymbol{position:absolute;top:23px;right:3px}.orgchart .node.compact .backToCompactSymbol::before{border-top-color:rgba(68,157,68,.6)}.orgchart .node.compact .backToLooseSymbol::before{border-bottom-color:rgba(68,157,68,.6)}.orgchart .node.compact .backToCompactSymbol:hover::before{border-top-color:#449d44}.orgchart .node.compact .backToLooseSymbol:hover::before{border-bottom-color:#449d44}.oci{display:inline-block;position:relative;font-style:normal;font-family:Arial}.oci-menu::before{content:"≡";display:inline-block;width:1rem;height:1rem;text-align:center;line-height:1rem;color:#000;font-size:1rem}.oci-chevron-up::before{content:"";box-sizing:border-box;width:10px;height:10px;display:inline-block;border:3px solid #000;transform:rotate(45deg);border-right:unset;border-bottom:unset}.oci-chevron-down::before{content:"";box-sizing:border-box;width:10px;height:10px;display:inline-block;border:3px solid #000;transform:rotate(45deg);border-top:unset;border-left:unset}.oci-chevron-left::before{content:"";box-sizing:border-box;width:10px;height:10px;display:inline-block;border:3px solid #000;transform:rotate(45deg);border-top:unset;border-right:unset}.oci-chevron-right::before{content:"";box-sizing:border-box;width:10px;height:10px;display:inline-block;border:3px solid #000;transform:rotate(45deg);border-left:unset;border-bottom:unset}.oci-corner-top-left::before{content:"";display:inline-block;border-top:20px solid #000;border-right:20px solid transparent}.oci-corner-top-right::before{content:"";display:inline-block;box-sizing:border-box;width:0;height:0;border-top:20px solid #000;border-left:20px solid transparent}.oci-corner-bottom-right::before{content:"";display:inline-block;box-sizing:border-box;width:0;height:0;border-bottom:20px solid #000;border-left:20px solid transparent}.oci-corner-bottom-left::before{content:"";display:inline-block;box-sizing:border-box;width:0;height:0;border-bottom:20px solid #000;border-right:20px solid transparent}.oci-plus-square::before{content:"﹢";display:inline-block;width:16px;height:16px;text-align:center;line-height:16px;background-color:#000;color:#fff;font-weight:700}.oci-minus-square::before{content:"﹣";display:inline-block;width:16px;height:16px;text-align:center;line-height:16px;background-color:#000;color:#fff;font-weight:700}.oci-arrow-square-up::before{content:"⬆";display:inline-block;width:1rem;height:1rem;text-align:center;line-height:1rem;background-color:#000;color:#fff;font-weight:700}.oci-arrow-square-down::before{content:"⬇";display:inline-block;width:1rem;height:1rem;text-align:center;line-height:1rem;background-color:#000;color:#fff;font-weight:700}.oci-info-circle::before{content:"i";display:inline-block;width:1rem;height:1rem;border-radius:.5rem;background-color:#000;color:#fff;text-align:center;font-weight:700}.oci-spinner::before{content:"";vertical-align:text-bottom;display:inline-block;box-sizing:border-box;width:1rem;height:1rem;border:.1rem solid #000;border-right-color:transparent;border-radius:.625rem;animation:oci-infinite-spinning .75s linear infinite}@keyframes oci-infinite-spinning{from{transform:rotate(0)}to{transform:rotate(360deg)}}
|
|
@@ -21,6 +21,19 @@
|
|
|
21
21
|
this.$chartContainer = $(elem);
|
|
22
22
|
this.opts = opts;
|
|
23
23
|
this.defaultOptions = {
|
|
24
|
+
'icons': {
|
|
25
|
+
'theme': 'oci',
|
|
26
|
+
'parentNode': 'oci-menu',
|
|
27
|
+
'expandToUp': 'oci-chevron-up',
|
|
28
|
+
'collapseToDown': 'oci-chevron-down',
|
|
29
|
+
'collapseToLeft': 'oci-chevron-left',
|
|
30
|
+
'expandToRight': 'oci-chevron-right',
|
|
31
|
+
'backToCompact': 'oci-corner-top-left',
|
|
32
|
+
'backToLoose': 'oci-corner-bottom-right',
|
|
33
|
+
'collapsed': 'oci-plus-square',
|
|
34
|
+
'expanded': 'oci-minus-square',
|
|
35
|
+
'spinner': 'oci-spinner'
|
|
36
|
+
},
|
|
24
37
|
'nodeTitle': 'name',
|
|
25
38
|
'nodeId': 'id',
|
|
26
39
|
'toggleSiblingsResp': false,
|
|
@@ -30,7 +43,6 @@
|
|
|
30
43
|
'exportButtonName': 'Export',
|
|
31
44
|
'exportFilename': 'OrgChart',
|
|
32
45
|
'exportFileextension': 'png',
|
|
33
|
-
'parentNodeSymbol': 'oci-leader',
|
|
34
46
|
'draggable': false,
|
|
35
47
|
'direction': 't2b',
|
|
36
48
|
'pan': false,
|
|
@@ -71,7 +83,7 @@
|
|
|
71
83
|
this.buildHierarchy($root, this.options.ajaxURL ? data : this.attachRel(data, '00'));
|
|
72
84
|
}
|
|
73
85
|
} else {
|
|
74
|
-
$chart.append(
|
|
86
|
+
$chart.append(`<i class="${this.options.icons.theme} ${this.options.icons.spinner} spinner"></i>`);
|
|
75
87
|
$.ajax({
|
|
76
88
|
'url': data,
|
|
77
89
|
'dataType': 'json'
|
|
@@ -103,6 +115,20 @@
|
|
|
103
115
|
|
|
104
116
|
return this;
|
|
105
117
|
},
|
|
118
|
+
handleCompactNodes: function () {
|
|
119
|
+
// caculate the compact nodes' level which is used to add different styles
|
|
120
|
+
this.$chart.find('.node.compact')
|
|
121
|
+
.each((index, node) => {
|
|
122
|
+
$(node).addClass($(node).parents('.compact').length % 2 === 0 ? 'even' : 'odd');
|
|
123
|
+
}); // the following code snippets is used to add direction arrows for the most top compact node, however the styles is not adjusted correctly
|
|
124
|
+
// .filter((index, node) => !$(node).parent().is('.compact'))
|
|
125
|
+
// .each((index, node) => {
|
|
126
|
+
// $(node).append(`<i class="edge verticalEdge topEdge ${this.options.icons.theme}"></i>`);
|
|
127
|
+
// if (this.getSiblings($(node)).length) {
|
|
128
|
+
// $(node).append(`<i class="edge horizontalEdge rightEdge ${this.options.icons.theme}"></i><i class="edge horizontalEdge leftEdge ${this.options.icons.theme}"></i>`);
|
|
129
|
+
// }
|
|
130
|
+
// });
|
|
131
|
+
},
|
|
106
132
|
//
|
|
107
133
|
triggerInitEvent: function () {
|
|
108
134
|
var that = this;
|
|
@@ -112,6 +138,7 @@
|
|
|
112
138
|
for (var i = 0; i < mutations.length; i++) {
|
|
113
139
|
for (var j = 0; j < mutations[i].addedNodes.length; j++) {
|
|
114
140
|
if (mutations[i].addedNodes[j].classList.contains('orgchart')) {
|
|
141
|
+
that.handleCompactNodes();
|
|
115
142
|
if (that.options.initCompleted && typeof that.options.initCompleted === 'function') {
|
|
116
143
|
that.options.initCompleted(that.$chart);
|
|
117
144
|
}
|
|
@@ -367,14 +394,21 @@
|
|
|
367
394
|
});
|
|
368
395
|
return subObj;
|
|
369
396
|
},
|
|
370
|
-
//
|
|
397
|
+
// process datasource and add necessary information
|
|
371
398
|
attachRel: function (data, flags) {
|
|
372
399
|
var that = this;
|
|
373
400
|
data.relationship = flags + (data.children && data.children.length > 0 ? 1 : 0);
|
|
401
|
+
if (this.options?.compact?.constructor === Function && this.options.compact(data)) {
|
|
402
|
+
data.compact = true;
|
|
403
|
+
}
|
|
374
404
|
if (data.children) {
|
|
375
405
|
data.children.forEach(function(item) {
|
|
376
|
-
if (data.
|
|
377
|
-
item.
|
|
406
|
+
if (data.hybrid || data.vertical) { // identify all the descendant nodes except the root node of hybrid structure
|
|
407
|
+
item.vertical = true;
|
|
408
|
+
} else if (data.compact && item.children) { // identify all the compact ancestor nodes
|
|
409
|
+
item.compact = true;
|
|
410
|
+
} else if (data.compact && !item.children) { // identify all the compact descendant nodes
|
|
411
|
+
item.associatedCompact = true;
|
|
378
412
|
}
|
|
379
413
|
that.attachRel(item, '1' + (data.children.length > 1 ? 1 : 0));
|
|
380
414
|
});
|
|
@@ -568,7 +602,7 @@
|
|
|
568
602
|
$animatedNodes.closest('.hierarchy').addClass('isCollapsedDescendant');
|
|
569
603
|
}
|
|
570
604
|
if ($lowerLevel.is('.vertical') || $lowerLevel.find('.vertical').length) {
|
|
571
|
-
$animatedNodes.find(
|
|
605
|
+
$animatedNodes.find(this.options.icons.expanded).removeClass(this.options.icons.expanded).addClass(this.options.icons.collapsed);
|
|
572
606
|
}
|
|
573
607
|
this.repaint($animatedNodes.get(0));
|
|
574
608
|
$animatedNodes.addClass('sliding slide-up').eq(0).one('transitionend', { 'animatedNodes': $animatedNodes, 'lowerLevel': $lowerLevel, 'node': $node }, this.hideChildrenEnd.bind(this));
|
|
@@ -647,7 +681,7 @@
|
|
|
647
681
|
event.data.visibleNodes.removeClass('sliding');
|
|
648
682
|
if (this.isInAction($node)) {
|
|
649
683
|
this.switchHorizontalArrow($node);
|
|
650
|
-
$node.children('.topEdge').removeClass(
|
|
684
|
+
$node.children('.topEdge').removeClass(this.options.icons.expandToUp).addClass(this.options.icons.collapseToDown);
|
|
651
685
|
}
|
|
652
686
|
},
|
|
653
687
|
//
|
|
@@ -702,7 +736,7 @@
|
|
|
702
736
|
}
|
|
703
737
|
|
|
704
738
|
$edge.addClass('hidden');
|
|
705
|
-
$edge.parent().append(
|
|
739
|
+
$edge.parent().append(`<i class="${this.options.icons.theme} ${this.options.icons.spinner} spinner"></i>`)
|
|
706
740
|
.children().not('.spinner').css('opacity', 0.2);
|
|
707
741
|
$chart.data('inAjax', true);
|
|
708
742
|
$('.oc-export-btn').prop('disabled', true);
|
|
@@ -719,11 +753,16 @@
|
|
|
719
753
|
},
|
|
720
754
|
// whether the cursor is hovering over the node
|
|
721
755
|
isInAction: function ($node) {
|
|
722
|
-
return
|
|
756
|
+
return [
|
|
757
|
+
this.options.icons.expandToUp,
|
|
758
|
+
this.options.icons.collapseToDown,
|
|
759
|
+
this.options.icons.collapseToLeft,
|
|
760
|
+
this.options.icons.expandToRight
|
|
761
|
+
].some((icon) => $node.children('.edge').attr('class').indexOf(icon) > -1);
|
|
723
762
|
},
|
|
724
763
|
//
|
|
725
764
|
switchVerticalArrow: function ($arrow) {
|
|
726
|
-
$arrow.toggleClass(
|
|
765
|
+
$arrow.toggleClass(`${this.options.icons.expandToUp} ${this.options.icons.collapseToDown}`);
|
|
727
766
|
},
|
|
728
767
|
//
|
|
729
768
|
switchHorizontalArrow: function ($node) {
|
|
@@ -732,24 +771,24 @@
|
|
|
732
771
|
var $prevSib = $node.parent().prev();
|
|
733
772
|
if ($prevSib.length) {
|
|
734
773
|
if ($prevSib.is('.hidden')) {
|
|
735
|
-
$node.children('.leftEdge').addClass(
|
|
774
|
+
$node.children('.leftEdge').addClass(opts.icons.collapseToLeft).removeClass(opts.icons.expandToRight);
|
|
736
775
|
} else {
|
|
737
|
-
$node.children('.leftEdge').addClass(
|
|
776
|
+
$node.children('.leftEdge').addClass(opts.icons.expandToRight).removeClass(opts.icons.collapseToLeft);
|
|
738
777
|
}
|
|
739
778
|
}
|
|
740
779
|
var $nextSib = $node.parent().next();
|
|
741
780
|
if ($nextSib.length) {
|
|
742
781
|
if ($nextSib.is('.hidden')) {
|
|
743
|
-
$node.children('.rightEdge').addClass(
|
|
782
|
+
$node.children('.rightEdge').addClass(opts.icons.expandToRight).removeClass(opts.icons.collapseToLeft);
|
|
744
783
|
} else {
|
|
745
|
-
$node.children('.rightEdge').addClass(
|
|
784
|
+
$node.children('.rightEdge').addClass(opts.icons.collapseToLeft).removeClass(opts.icons.expandToRight);
|
|
746
785
|
}
|
|
747
786
|
}
|
|
748
787
|
} else {
|
|
749
788
|
var $sibs = $node.parent().siblings();
|
|
750
789
|
var sibsVisible = $sibs.length ? !$sibs.is('.hidden') : false;
|
|
751
|
-
$node.children('.leftEdge').toggleClass(
|
|
752
|
-
$node.children('.rightEdge').toggleClass(
|
|
790
|
+
$node.children('.leftEdge').toggleClass(opts.icons.expandToRight, sibsVisible).toggleClass(opts.icons.collapseToLeft, !sibsVisible);
|
|
791
|
+
$node.children('.rightEdge').toggleClass(opts.icons.collapseToLeft, sibsVisible).toggleClass(opts.icons.expandToRight, !sibsVisible);
|
|
753
792
|
}
|
|
754
793
|
},
|
|
755
794
|
//
|
|
@@ -767,10 +806,10 @@
|
|
|
767
806
|
if (event.type === 'mouseenter') {
|
|
768
807
|
if ($node.children('.toggleBtn').length) {
|
|
769
808
|
flag = this.getNodeState($node, 'children').visible;
|
|
770
|
-
$toggleBtn.toggleClass(
|
|
809
|
+
$toggleBtn.toggleClass(this.options.icons.collapsed, !flag).toggleClass(this.options.icons.expanded, flag);
|
|
771
810
|
}
|
|
772
811
|
} else {
|
|
773
|
-
$toggleBtn.removeClass(
|
|
812
|
+
$toggleBtn.removeClass(`${this.options.icons.collapsed} ${this.options.icons.expanded}`);
|
|
774
813
|
}
|
|
775
814
|
} else {
|
|
776
815
|
var $topEdge = $node.children('.topEdge');
|
|
@@ -780,17 +819,17 @@
|
|
|
780
819
|
if (event.type === 'mouseenter') {
|
|
781
820
|
if ($topEdge.length) {
|
|
782
821
|
flag = this.getNodeState($node, 'parent').visible;
|
|
783
|
-
$topEdge.toggleClass(
|
|
822
|
+
$topEdge.toggleClass(this.options.icons.expandToUp, !flag).toggleClass(this.options.icons.collapseToDown, flag);
|
|
784
823
|
}
|
|
785
824
|
if ($bottomEdge.length) {
|
|
786
825
|
flag = this.getNodeState($node, 'children').visible;
|
|
787
|
-
$bottomEdge.toggleClass(
|
|
826
|
+
$bottomEdge.toggleClass(this.options.icons.collapseToDown, !flag).toggleClass(this.options.icons.expandToUp, flag);
|
|
788
827
|
}
|
|
789
828
|
if ($leftEdge.length) {
|
|
790
829
|
this.switchHorizontalArrow($node);
|
|
791
830
|
}
|
|
792
831
|
} else {
|
|
793
|
-
$node.children('.edge').removeClass(
|
|
832
|
+
$node.children('.edge').removeClass(`${this.options.icons.expandToUp} ${this.options.icons.collapseToDown} ${this.options.icons.collapseToLeft} ${this.options.icons.expandToRight}`);
|
|
794
833
|
}
|
|
795
834
|
}
|
|
796
835
|
},
|
|
@@ -939,6 +978,19 @@
|
|
|
939
978
|
}
|
|
940
979
|
}
|
|
941
980
|
},
|
|
981
|
+
// show the compact node's children in the compact mode
|
|
982
|
+
backToCompactHandler: function (event) {
|
|
983
|
+
$(event.delegateTarget).removeClass('looseMode')
|
|
984
|
+
.children('.backToCompactSymbol').addClass('hidden').end()
|
|
985
|
+
.children('.backToLooseSymbol').removeClass('hidden');
|
|
986
|
+
},
|
|
987
|
+
// show the compact node's children in the loose mode
|
|
988
|
+
backToLooseHandler: function (event) {
|
|
989
|
+
$(event.delegateTarget)
|
|
990
|
+
.addClass('looseMode')
|
|
991
|
+
.children('.backToLooseSymbol').addClass('hidden').end()
|
|
992
|
+
.children('.backToCompactSymbol').removeClass('hidden');
|
|
993
|
+
},
|
|
942
994
|
//
|
|
943
995
|
expandVNodesEnd: function (event) {
|
|
944
996
|
event.data.vNodes.removeClass('sliding');
|
|
@@ -954,14 +1006,14 @@
|
|
|
954
1006
|
var $descendants = $descWrapper.find('.node');
|
|
955
1007
|
var $children = $descWrapper.children().children('.node');
|
|
956
1008
|
if ($children.is('.sliding')) { return; }
|
|
957
|
-
$toggleBtn.toggleClass(
|
|
1009
|
+
$toggleBtn.toggleClass(`${this.options.icons.collapsed} ${this.options.icons.expanded}`);
|
|
958
1010
|
if ($descendants.eq(0).is('.slide-up')) {
|
|
959
1011
|
$descWrapper.removeClass('hidden');
|
|
960
1012
|
this.repaint($children.get(0));
|
|
961
1013
|
$children.addClass('sliding').removeClass('slide-up').eq(0).one('transitionend', { 'vNodes': $children }, this.expandVNodesEnd);
|
|
962
1014
|
} else {
|
|
963
1015
|
$descendants.addClass('sliding slide-up').eq(0).one('transitionend', { 'vNodes': $descendants }, this.collapseVNodesEnd);
|
|
964
|
-
$descendants.find('.toggleBtn').removeClass(
|
|
1016
|
+
$descendants.find('.toggleBtn').removeClass(`${this.options.icons.collapsed} ${this.options.icons.expanded}`);
|
|
965
1017
|
}
|
|
966
1018
|
},
|
|
967
1019
|
//
|
|
@@ -1122,7 +1174,7 @@
|
|
|
1122
1174
|
// special process for hybrid chart
|
|
1123
1175
|
var datasource = this.$chart.data('options').data;
|
|
1124
1176
|
var digger = new JSONDigger(datasource, this.$chart.data('options').nodeId, 'children');
|
|
1125
|
-
const hybridNode = digger.findOneNode({ '
|
|
1177
|
+
const hybridNode = digger.findOneNode({ 'hybrid': true });
|
|
1126
1178
|
if (this.$chart.data('options').verticalLevel > 1 || hybridNode) {
|
|
1127
1179
|
var draggedNode = digger.findNodeById($dragged.data('nodeData').id);
|
|
1128
1180
|
var copy = Object.assign({}, draggedNode);
|
|
@@ -1138,14 +1190,14 @@
|
|
|
1138
1190
|
// The folowing code snippets are used to process horizontal chart
|
|
1139
1191
|
// firstly, deal with the hierarchy of drop zone
|
|
1140
1192
|
if (!$dropZone.siblings('.nodes').length) { // if the drop zone is a leaf node
|
|
1141
|
-
$dropZone.append(
|
|
1193
|
+
$dropZone.append(`<i class="edge verticalEdge bottomEdge ${this.options.icons.theme}"></i>`)
|
|
1142
1194
|
.after('<ul class="nodes"></ul>')
|
|
1143
1195
|
.siblings('.nodes').append($dragged.find('.horizontalEdge').remove().end().closest('.hierarchy'));
|
|
1144
1196
|
if ($dropZone.children('.title').length) {
|
|
1145
|
-
$dropZone.children('.title').prepend(
|
|
1197
|
+
$dropZone.children('.title').prepend(`<i class="${this.options.icons.theme} ${this.$chart.data('options').icons.parentNode} parentNodeSymbol"></i>`);
|
|
1146
1198
|
}
|
|
1147
1199
|
} else {
|
|
1148
|
-
var horizontalEdges =
|
|
1200
|
+
var horizontalEdges = `<i class="edge horizontalEdge rightEdge ${this.options.icons.theme}"></i><i class="edge horizontalEdge leftEdge ${this.options.icons.theme}"></i>`;
|
|
1149
1201
|
if (!$dragged.find('.horizontalEdge').length) {
|
|
1150
1202
|
$dragged.append(horizontalEdges);
|
|
1151
1203
|
}
|
|
@@ -1160,7 +1212,7 @@
|
|
|
1160
1212
|
$dragZone.siblings('.nodes').children('.hierarchy').find('.node:first')
|
|
1161
1213
|
.find('.horizontalEdge').remove();
|
|
1162
1214
|
} else if ($dragZone.siblings('.nodes').children('.hierarchy').length === 0) {
|
|
1163
|
-
$dragZone.find('.bottomEdge, .
|
|
1215
|
+
$dragZone.find('.bottomEdge, .parentNodeSymbol').remove()
|
|
1164
1216
|
.end().siblings('.nodes').remove();
|
|
1165
1217
|
}
|
|
1166
1218
|
}
|
|
@@ -1344,29 +1396,39 @@
|
|
|
1344
1396
|
var nodeData = $.extend({}, data);
|
|
1345
1397
|
delete nodeData.children;
|
|
1346
1398
|
$nodeDiv.data('nodeData', nodeData);
|
|
1347
|
-
// append 4 direction arrows or expand/collapse buttons
|
|
1399
|
+
// append 4 direction arrows or expand/collapse buttons or reset buttons
|
|
1348
1400
|
var flags = data.relationship || '';
|
|
1349
|
-
if ((opts.verticalLevel && level >= opts.verticalLevel) || data.
|
|
1401
|
+
if ((opts.verticalLevel && level >= opts.verticalLevel) || data.vertical) {
|
|
1350
1402
|
if (Number(flags.substr(2,1))) {
|
|
1351
|
-
$nodeDiv.append(
|
|
1352
|
-
.children('.title').prepend(
|
|
1403
|
+
$nodeDiv.append(`<i class="toggleBtn ${opts.icons.theme}"></i>`)
|
|
1404
|
+
.children('.title').prepend(`<i class="${opts.icons.theme} ${opts.icons.parentNode} parentNodeSymbol"></i>`);
|
|
1353
1405
|
}
|
|
1354
|
-
} else if (data.
|
|
1406
|
+
} else if (data.hybrid) {
|
|
1355
1407
|
if (Number(flags.substr(2,1))) {
|
|
1356
|
-
$nodeDiv.append(
|
|
1357
|
-
.children('.title').prepend(
|
|
1408
|
+
$nodeDiv.append(`<i class="edge verticalEdge bottomEdge ${opts.icons.theme}"></i>`)
|
|
1409
|
+
.children('.title').prepend(`<i class="${opts.icons.theme} ${opts.icons.parentNode} parentNodeSymbol"></i>`);
|
|
1358
1410
|
}
|
|
1411
|
+
} else if (data.compact) {
|
|
1412
|
+
$nodeDiv.css('grid-template-columns', `repeat(${Math.floor(Math.sqrt(data.children.length + 1))}, auto)`);
|
|
1413
|
+
if (Number(flags.substr(2,1))) {
|
|
1414
|
+
$nodeDiv.append(`
|
|
1415
|
+
<i class="${opts.icons.theme} ${opts.icons.backToCompact} backToCompactSymbol hidden"></i>
|
|
1416
|
+
<i class="${opts.icons.theme} ${opts.icons.backToLoose} backToLooseSymbol"></i>
|
|
1417
|
+
`)
|
|
1418
|
+
.children('.title').prepend(`<i class="${opts.icons.theme} ${opts.icons.parentNode} parentNodeSymbol"></i>`);
|
|
1419
|
+
}
|
|
1420
|
+
} else if (data.associatedCompact) {
|
|
1421
|
+
|
|
1359
1422
|
} else {
|
|
1360
1423
|
if (Number(flags.substr(0,1))) {
|
|
1361
|
-
$nodeDiv.append(
|
|
1424
|
+
$nodeDiv.append(`<i class="edge verticalEdge topEdge ${opts.icons.theme}"></i>`);
|
|
1362
1425
|
}
|
|
1363
1426
|
if(Number(flags.substr(1,1))) {
|
|
1364
|
-
$nodeDiv.append(
|
|
1365
|
-
'<i class="edge horizontalEdge leftEdge oci"></i>');
|
|
1427
|
+
$nodeDiv.append(`<i class="edge horizontalEdge rightEdge ${opts.icons.theme}"></i><i class="edge horizontalEdge leftEdge ${opts.icons.theme}"></i>`);
|
|
1366
1428
|
}
|
|
1367
1429
|
if(Number(flags.substr(2,1))) {
|
|
1368
|
-
$nodeDiv.append(
|
|
1369
|
-
.children('.title').prepend(
|
|
1430
|
+
$nodeDiv.append(`<i class="edge verticalEdge bottomEdge ${opts.icons.theme}"></i>`)
|
|
1431
|
+
.children('.title').prepend(`<i class="${opts.icons.theme} ${opts.icons.parentNode} parentNodeSymbol"></i>`);
|
|
1370
1432
|
}
|
|
1371
1433
|
}
|
|
1372
1434
|
|
|
@@ -1376,6 +1438,8 @@
|
|
|
1376
1438
|
$nodeDiv.on('click', '.bottomEdge', this.bottomEdgeClickHandler.bind(this));
|
|
1377
1439
|
$nodeDiv.on('click', '.leftEdge, .rightEdge', this.hEdgeClickHandler.bind(this));
|
|
1378
1440
|
$nodeDiv.on('click', '.toggleBtn', this.toggleVNodes.bind(this));
|
|
1441
|
+
$nodeDiv.on('click', '> .backToCompactSymbol',this.backToCompactHandler.bind(this));
|
|
1442
|
+
$nodeDiv.on('click', '> .backToLooseSymbol',this.backToLooseHandler.bind(this));
|
|
1379
1443
|
|
|
1380
1444
|
if (opts.draggable) {
|
|
1381
1445
|
this.bindDragDrop($nodeDiv);
|
|
@@ -1395,6 +1459,7 @@
|
|
|
1395
1459
|
var that = this;
|
|
1396
1460
|
var opts = this.options;
|
|
1397
1461
|
var level = 0;
|
|
1462
|
+
var $nodeDiv;
|
|
1398
1463
|
if (data.level) {
|
|
1399
1464
|
level = data.level;
|
|
1400
1465
|
} else {
|
|
@@ -1402,23 +1467,26 @@
|
|
|
1402
1467
|
}
|
|
1403
1468
|
// Construct the node
|
|
1404
1469
|
if (Object.keys(data).length > 2) {
|
|
1405
|
-
$
|
|
1470
|
+
$nodeDiv = this.createNode(data);
|
|
1471
|
+
$appendTo.append($nodeDiv);
|
|
1406
1472
|
}
|
|
1407
1473
|
// Construct the "inferior nodes"
|
|
1408
1474
|
if (data.children && data.children.length) {
|
|
1409
1475
|
var isHidden = level + 1 > opts.visibleLevel || (data.collapsed !== undefined && data.collapsed);
|
|
1410
1476
|
var $nodesLayer;
|
|
1411
|
-
if ((opts.verticalLevel && (level + 1) >= opts.verticalLevel) || data.
|
|
1477
|
+
if ((opts.verticalLevel && (level + 1) >= opts.verticalLevel) || data.hybrid) {
|
|
1412
1478
|
$nodesLayer = $('<ul class="nodes">');
|
|
1413
1479
|
if (isHidden && (opts.verticalLevel && (level + 1) >= opts.verticalLevel)) {
|
|
1414
1480
|
$nodesLayer.addClass('hidden');
|
|
1415
1481
|
}
|
|
1416
|
-
if (((opts.verticalLevel && level + 1 === opts.verticalLevel) || data.
|
|
1482
|
+
if (((opts.verticalLevel && level + 1 === opts.verticalLevel) || data.hybrid)
|
|
1417
1483
|
&& !$appendTo.closest('.vertical').length) {
|
|
1418
1484
|
$appendTo.append($nodesLayer.addClass('vertical'));
|
|
1419
1485
|
} else {
|
|
1420
1486
|
$appendTo.append($nodesLayer);
|
|
1421
1487
|
}
|
|
1488
|
+
} else if (data.compact) {
|
|
1489
|
+
$nodeDiv.addClass('compact');
|
|
1422
1490
|
} else {
|
|
1423
1491
|
$nodesLayer = $('<ul class="nodes' + (isHidden ? ' hidden' : '') + '">');
|
|
1424
1492
|
if (Object.keys(data).length === 2) {
|
|
@@ -1432,10 +1500,14 @@
|
|
|
1432
1500
|
}
|
|
1433
1501
|
// recurse through children nodes
|
|
1434
1502
|
$.each(data.children, function () {
|
|
1435
|
-
var $nodeCell = $('<li class="hierarchy">');
|
|
1436
|
-
$nodesLayer.append($nodeCell);
|
|
1437
1503
|
this.level = level + 1;
|
|
1438
|
-
|
|
1504
|
+
if (data.compact) {
|
|
1505
|
+
that.buildHierarchy($nodeDiv, this);
|
|
1506
|
+
} else {
|
|
1507
|
+
var $nodeCell = $('<li class="hierarchy">');
|
|
1508
|
+
$nodesLayer.append($nodeCell);
|
|
1509
|
+
that.buildHierarchy($nodeCell, this);
|
|
1510
|
+
}
|
|
1439
1511
|
});
|
|
1440
1512
|
}
|
|
1441
1513
|
},
|
|
@@ -1446,16 +1518,16 @@
|
|
|
1446
1518
|
// exposed method
|
|
1447
1519
|
addChildren: function ($node, data) {
|
|
1448
1520
|
this.buildChildNode($node.closest('.hierarchy'), data);
|
|
1449
|
-
if (!$node.find('.
|
|
1450
|
-
$node.children('.title').prepend(
|
|
1521
|
+
if (!$node.find('.parentNodeSymbol').length) {
|
|
1522
|
+
$node.children('.title').prepend(`<i class="${this.options.icons.theme} ${this.options.icons.parentNode} parentNodeSymbol"></i>`);
|
|
1451
1523
|
}
|
|
1452
1524
|
if ($node.closest('.nodes.vertical').length) {
|
|
1453
1525
|
if (!$node.children('.toggleBtn').length) {
|
|
1454
|
-
$node.append(
|
|
1526
|
+
$node.append(`<i class="toggleBtn ${this.options.icons.theme}"></i>`);
|
|
1455
1527
|
}
|
|
1456
1528
|
} else {
|
|
1457
1529
|
if (!$node.children('.bottomEdge').length) {
|
|
1458
|
-
$node.append(
|
|
1530
|
+
$node.append(`<i class="edge verticalEdge bottomEdge ${this.options.icons.theme}"></i>`);
|
|
1459
1531
|
}
|
|
1460
1532
|
}
|
|
1461
1533
|
if (this.isInAction($node)) {
|
|
@@ -1474,7 +1546,7 @@
|
|
|
1474
1546
|
addParent: function ($currentRoot, data) {
|
|
1475
1547
|
this.buildParentNode($currentRoot, data);
|
|
1476
1548
|
if (!$currentRoot.children('.topEdge').length) {
|
|
1477
|
-
$currentRoot.children('.title').after(
|
|
1549
|
+
$currentRoot.children('.title').after(`<i class="edge verticalEdge topEdge ${this.options.icons.theme}"></i>`);
|
|
1478
1550
|
}
|
|
1479
1551
|
if (this.isInAction($currentRoot)) {
|
|
1480
1552
|
this.switchVerticalArrow($currentRoot.children('.topEdge'));
|
|
@@ -1505,11 +1577,11 @@
|
|
|
1505
1577
|
this.buildSiblingNode($node.closest('.hierarchy'), data);
|
|
1506
1578
|
$node.closest('.nodes').data('siblingsLoaded', true);
|
|
1507
1579
|
if (!$node.children('.leftEdge').length) {
|
|
1508
|
-
$node.children('.topEdge').after(
|
|
1580
|
+
$node.children('.topEdge').after(`<i class="edge horizontalEdge rightEdge ${this.options.icons.theme}"></i><i class="edge horizontalEdge leftEdge ${this.options.icons.theme}"></i>`);
|
|
1509
1581
|
}
|
|
1510
1582
|
if (this.isInAction($node)) {
|
|
1511
1583
|
this.switchHorizontalArrow($node);
|
|
1512
|
-
$node.children('.topEdge').removeClass(
|
|
1584
|
+
$node.children('.topEdge').removeClass(this.options.icons.expandToUp).addClass(this.options.icons.collapseToDown);
|
|
1513
1585
|
}
|
|
1514
1586
|
},
|
|
1515
1587
|
// remove node and its descendent nodes
|
|
@@ -1594,10 +1666,10 @@
|
|
|
1594
1666
|
if ((!isWebkit && !isFf) || isEdge) {
|
|
1595
1667
|
window.navigator.msSaveBlob(canvas.msToBlob(), exportFilename + '.png');
|
|
1596
1668
|
} else {
|
|
1597
|
-
var selector = '.
|
|
1669
|
+
var selector = '.download-btn' + (that.options.chartClass !== '' ? '.' + that.options.chartClass : '');
|
|
1598
1670
|
|
|
1599
1671
|
if (!$chartContainer.find(selector).length) {
|
|
1600
|
-
$chartContainer.append('<a class="
|
|
1672
|
+
$chartContainer.append('<a class="download-btn' + (that.options.chartClass !== '' ? ' ' + that.options.chartClass : '') + '"'
|
|
1601
1673
|
+ ' download="' + exportFilename + '.png"></a>');
|
|
1602
1674
|
}
|
|
1603
1675
|
|
|
@@ -1615,7 +1687,7 @@
|
|
|
1615
1687
|
var $chartContainer = this.$chartContainer;
|
|
1616
1688
|
var $mask = $chartContainer.find('.mask');
|
|
1617
1689
|
if (!$mask.length) {
|
|
1618
|
-
$chartContainer.append(
|
|
1690
|
+
$chartContainer.append(`<div class="mask"><i class="${this.options.icons.theme} ${this.options.icons.spinner} spinner"></i></div>`);
|
|
1619
1691
|
} else {
|
|
1620
1692
|
$mask.removeClass('hidden');
|
|
1621
1693
|
}
|