primevue
Version:
PrimeVue is an open source UI library for Vue featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBloc
2 lines (1 loc) • 8.61 kB
JavaScript
"use strict";var e=require("primevue/basecomponent"),t=require("primevue/organizationchart/style"),o=require("primevue/icons/chevrondown"),n=require("primevue/icons/chevronup"),l=require("primevue/utils"),s=require("vue");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=i(e),c={name:"BaseOrganizationChart",extends:r.default,props:{value:{type:null,default:null},selectionKeys:{type:null,default:null},selectionMode:{type:String,default:null},collapsible:{type:Boolean,default:!1},collapsedKeys:{type:null,default:null}},style:i(t).default,provide:function(){return{$parentInstance:this}}},d={name:"OrganizationChartNode",hostName:"OrganizationChart",extends:r.default,emits:["node-click","node-toggle"],props:{node:{type:null,default:null},templates:{type:null,default:null},collapsible:{type:Boolean,default:!1},collapsedKeys:{type:null,default:null},selectionKeys:{type:null,default:null},selectionMode:{type:String,default:null}},methods:{getPTOptions:function(e){return this.ptm(e,{context:{expanded:this.expanded,selectable:this.selectable,selected:this.selected,toggleable:this.toggleable,active:this.selected}})},getNodeOptions:function(e,t){return this.ptm(t,{context:{lineTop:e}})},onNodeClick:function(e){l.DomHandler.getAttribute(e.target,"nodeToggler")||l.DomHandler.getAttribute(e.target,"nodeTogglerIcon")||this.selectionMode&&this.$emit("node-click",this.node)},onChildNodeClick:function(e){this.$emit("node-click",e)},toggleNode:function(){this.$emit("node-toggle",this.node)},onChildNodeToggle:function(e){this.$emit("node-toggle",e)},onKeydown:function(e){"Enter"!==e.code&&"NumpadEnter"!==e.code&&"Space"!==e.code||(this.toggleNode(),e.preventDefault())}},computed:{leaf:function(){return!1!==this.node.leaf&&!(this.node.children&&this.node.children.length)},colspan:function(){return this.node.children&&this.node.children.length?2*this.node.children.length:null},childStyle:function(){return{visibility:!this.leaf&&this.expanded?"inherit":"hidden"}},expanded:function(){return void 0===this.collapsedKeys[this.node.key]},selectable:function(){return this.selectionMode&&!1!==this.node.selectable},selected:function(){return this.selectable&&this.selectionKeys&&!0===this.selectionKeys[this.node.key]},toggleable:function(){return this.collapsible&&!1!==this.node.collapsible&&!this.leaf}},components:{ChevronDownIcon:i(o).default,ChevronUpIcon:i(n).default}},a=["colspan"],p=["colspan"],u=["colspan"];function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}function g(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function y(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?g(Object(o),!0).forEach((function(t){h(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):g(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function h(e,t,o){var n;return(t="symbol"==m(n=f(t,"string"))?n:String(n))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function f(e,t){if("object"!=m(e)||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var n=o.call(e,t||"default");if("object"!=m(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}d.render=function(e,t,o,n,l,i){var r=s.resolveComponent("OrganizationChartNode",!0);return s.openBlock(),s.createElementBlock("table",s.mergeProps({class:e.cx("table")},e.ptm("table")),[s.createElementVNode("tbody",s.normalizeProps(s.guardReactiveProps(e.ptm("body"))),[o.node?(s.openBlock(),s.createElementBlock("tr",s.normalizeProps(s.mergeProps({key:0},e.ptm("row"))),[s.createElementVNode("td",s.mergeProps({colspan:i.colspan},e.ptm("cell")),[s.createElementVNode("div",s.mergeProps({class:[e.cx("node"),o.node.styleClass],onClick:t[2]||(t[2]=function(){return i.onNodeClick&&i.onNodeClick.apply(i,arguments)})},i.getPTOptions("node")),[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(o.templates[o.node.type]||o.templates.default),{node:o.node},null,8,["node"])),i.toggleable?(s.openBlock(),s.createElementBlock("a",s.mergeProps({key:0,tabindex:"0",class:e.cx("nodeToggler"),onClick:t[0]||(t[0]=function(){return i.toggleNode&&i.toggleNode.apply(i,arguments)}),onKeydown:t[1]||(t[1]=function(){return i.onKeydown&&i.onKeydown.apply(i,arguments)})},i.getPTOptions("nodeToggler")),[o.templates.togglericon?(s.openBlock(),s.createBlock(s.resolveDynamicComponent(o.templates.togglericon),{key:0,expanded:i.expanded,class:"p-node-toggler-icon"},null,8,["expanded"])):(s.openBlock(),s.createBlock(s.resolveDynamicComponent(i.expanded?"ChevronDownIcon":"ChevronUpIcon"),s.mergeProps({key:1,class:e.cx("nodeTogglerIcon")},i.getPTOptions("nodeTogglerIcon")),null,16,["class"]))],16)):s.createCommentVNode("",!0)],16)],16,a)],16)):s.createCommentVNode("",!0),s.createElementVNode("tr",s.mergeProps({style:i.childStyle,class:e.cx("lines")},e.ptm("lines")),[s.createElementVNode("td",s.mergeProps({colspan:i.colspan},e.ptm("lineCell")),[s.createElementVNode("div",s.mergeProps({class:e.cx("lineDown")},e.ptm("lineDown")),null,16)],16,p)],16),s.createElementVNode("tr",s.mergeProps({style:i.childStyle,class:e.cx("lines")},e.ptm("lines")),[o.node.children&&1===o.node.children.length?(s.openBlock(),s.createElementBlock("td",s.mergeProps({key:0,colspan:i.colspan},e.ptm("lineCell")),[s.createElementVNode("div",s.mergeProps({class:e.cx("lineDown")},e.ptm("lineDown")),null,16)],16,u)):s.createCommentVNode("",!0),o.node.children&&o.node.children.length>1?(s.openBlock(!0),s.createElementBlock(s.Fragment,{key:1},s.renderList(o.node.children,(function(t,n){return s.openBlock(),s.createElementBlock(s.Fragment,{key:t.key},[s.createElementVNode("td",s.mergeProps({class:e.cx("lineLeft",{index:n})},i.getNodeOptions(!(0===n),"lineLeft"))," ",16),s.createElementVNode("td",s.mergeProps({class:e.cx("lineRight",{index:n})},i.getNodeOptions(!(n===o.node.children.length-1),"lineRight"))," ",16)],64)})),128)):s.createCommentVNode("",!0)],16),s.createElementVNode("tr",s.mergeProps({style:i.childStyle,class:e.cx("nodes")},e.ptm("nodes")),[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(o.node.children,(function(t){return s.openBlock(),s.createElementBlock("td",s.mergeProps({key:t.key,colspan:"2"},e.ptm("nodeCell")),[s.createVNode(r,{node:t,templates:o.templates,collapsedKeys:o.collapsedKeys,onNodeToggle:i.onChildNodeToggle,collapsible:o.collapsible,selectionMode:o.selectionMode,selectionKeys:o.selectionKeys,onNodeClick:i.onChildNodeClick,pt:e.pt,unstyled:e.unstyled},null,8,["node","templates","collapsedKeys","onNodeToggle","collapsible","selectionMode","selectionKeys","onNodeClick","pt","unstyled"])],16)})),128))],16)],16)],16)};var b={name:"OrganizationChart",extends:c,emits:["node-unselect","node-select","update:selectionKeys","node-expand","node-collapse","update:collapsedKeys"],data:function(){return{d_collapsedKeys:this.collapsedKeys||{}}},watch:{collapsedKeys:function(e){this.d_collapsedKeys=e}},methods:{onNodeClick:function(e){var t=e.key;if(this.selectionMode){var o=this.selectionKeys?y({},this.selectionKeys):{};o[t]?(delete o[t],this.$emit("node-unselect",e)):("single"===this.selectionMode&&(o={}),o[t]=!0,this.$emit("node-select",e)),this.$emit("update:selectionKeys",o)}},onNodeToggle:function(e){var t=e.key;this.d_collapsedKeys[t]?(delete this.d_collapsedKeys[t],this.$emit("node-expand",e)):(this.d_collapsedKeys[t]=!0,this.$emit("node-collapse",e)),this.d_collapsedKeys=y({},this.d_collapsedKeys),this.$emit("update:collapsedKeys",this.d_collapsedKeys)}},components:{OrganizationChartNode:d}};b.render=function(e,t,o,n,l,i){var r=s.resolveComponent("OrganizationChartNode");return s.openBlock(),s.createElementBlock("div",s.mergeProps({class:e.cx("root")},e.ptm("root")),[s.createVNode(r,{node:e.value,templates:e.$slots,onNodeToggle:i.onNodeToggle,collapsedKeys:l.d_collapsedKeys,collapsible:e.collapsible,onNodeClick:i.onNodeClick,selectionMode:e.selectionMode,selectionKeys:e.selectionKeys,pt:e.pt,unstyled:e.unstyled},null,8,["node","templates","onNodeToggle","collapsedKeys","collapsible","onNodeClick","selectionMode","selectionKeys","pt","unstyled"])],16)},module.exports=b;