@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 12.5 kB
JavaScript
module.exports=function(i){var a={};function r(e){if(a[e])return a[e].exports;var t=a[e]={exports:{},id:e,loaded:!1};return i[e].call(t.exports,t,t.exports,r),t.loaded=!0,t.exports}return r.m=i,r.c=a,r.p="",r(0)}({0:function(e,t,i){e.exports=i(1379)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1121:function(e,t){e.exports=require("./kendo.menu")},1221:function(e,t){e.exports=require("./kendo.window")},1265:function(e,t){e.exports=require("./kendo.upload")},1273:function(e,t){e.exports=require("./kendo.dialog")},1379:function(e,t,i){var a;i(3),i=[i(1380),i(1381),i(1121),i(1273),i(1382),i(1265),i(1221)],void 0===(t="function"==typeof(a=function(){var e={id:"orgchart",name:"OrgChart",category:"web",description:"The OrgChart widget displays hierarchical organizational structure.",depends:["core","menu","dialog","form","upload","window"]},s=window.kendo.jQuery,r=void 0,d=window.kendo,a=d.ui.DataBoundWidget,o=d.data.OrgChartDataSource,p=d.ui.ContextMenu,c=s.extend,f=Array.isArray,g=".kendoOrgChart",m="cancel",i="change",u="click",t="collapse",v="create",w="dataBinding",_="dataBound",k="delete",b="destroy",y="edit",S="error",x="expand",C="focus",I,D="menu",q="progress",E="save",H="select",O="requestStart",l=".",M=" ",T=",",F="id",W="uid",P="action",h={wrapper:"k-orgchart",container:"k-orgchart-container",line:"k-orgchart-line",lineVertical:"k-orgchart-line-v",lineHorizontal:"k-orgchart-line-h",lineVerticalTop:"k-orgchart-line-v-top",group:"k-orgchart-group",groupVertical:"k-orgchart-group-v",groupHorizontal:"k-orgchart-group-h",nodesGroup:"k-orgchart-node-group",nodesGroupContainer:"k-orgchart-node-group-container",nodeContainer:"k-orgchart-node-container",node:"k-orgchart-node",card:"k-orgchart-card",cardMenu:"k-orgchart-card-menu",button:"k-orgchart-button",focused:"k-state-focus",plusIcon:"k-i-plus",menuItem:"k-item",avatarPreview:"k-orgchart-avatar-preview",update:"k-orgchart-update",cancel:"k-orgchart-cancel",vstack:"k-vstack",hstack:"k-hstack",closeButton:"k-i-close"},n={edit:"<li data-action='edit'>#: edit #</li>",create:"<li data-action='create'>#: create #</li>",destroy:"<li data-action='destroy'>#: destroy #</li>"},B,j='<div class="k-orgchart-avatar-preview k-hstack k-align-items-center k-pb-lg">'+'<div class="k-avatar k-avatar-solid-primary k-avatar-solid k-avatar-lg k-rounded-full">'+'<span class="k-avatar-image">'+'<img src="#: avatar #" alt="#: name #">'+"</span>"+"</div>"+'<div class="k-px-md">#: fileName #</div>'+'<button class="k-button k-button-md k-rounded-md k-button-flat k-button-flat-base k-icon-button" aria-label="#: destroy #">'+'<span class="k-button-icon k-icon k-i-delete"></span>'+"</button>"+"</div>",A='<div class="k-edit-buttons">'+'<button type="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-base k-orgchart-cancel">'+'<span class="k-button-text">#: cancel #</span>'+"</button>"+'<button type="button" class="k-button k-button-md k-rounded-md k-button-solid k-button-solid-primary k-orgchart-update">'+'<span class="k-button-text">#: save #</span>'+"</button>"+"</div>",V=a.extend({init:function(e,t,i){if(f(t))t={dataSource:t};t=t||{};a.fn.init.call(this,e,t);if(i)this._events=i;this._wrapper();this._view();this._dataSource();this._contextMenu();if(this.options.autoBind)this.dataSource.fetch();d.notify(this)},options:{name:"OrgChart",autoBind:true,cardsColors:null,dataSource:{},editable:{create:true,destroy:true,fields:true,form:{buttonsTemplate:"",orientation:"vertical"},parent:true},groupField:null,groupHeaderTemplate:"<div>"+'<div class="k-orgchart-node-group-title">#: value #</div>'+'<div class="k-orgchart-node-group-subtitle">#: field #</div>'+"</div>",template:null,messages:{label:"Org Chart",edit:"Edit",create:"Create",destroy:"Delete",destroyContent:"Are you sure you want to delete this item and all its children?",destroyTitle:"Delete item",cancel:"Cancel",save:"Save",menuLabel:"Edit menu",uploadAvatar:"Upload new avatar",parent:"Parent",name:"Name",title:"Title",none:"--None--",expand:"expand",collapse:"collapse"}},events:[m,i,t,v,w,_,k,y,x,"kendoKeydown",E,H],destroy:function(){if(this._menu)this._menu.destroy();if(this._editWindow)this._editWindow.destroy();if(this._confirmDestroy)this._confirmDestroy.destroy();this.view.destroy();a.fn.destroy.call(this);this.wrapper.off(g)},setDataSource:function(e){this.options.dataSource=e;this._dataSource();if(this.options.autoBind)e.fetch()},setOptions:function(e){var t=this;a.fn.setOptions.call(t,e)},append:function(e,t){var i=this,a=i.view.jqueryItemElement(t),r=i.dataItem(a);if(!a||!r)return;if(!r.loaded())i.dataSource.read({id:r.id}).then(function(){i.dataSource.add(c({},e,{parentId:r.id}));i.dataSource.sync()});else{i.dataSource.add(c({},e,{parentId:r.id}));i.dataSource.sync()}},cancelChanges:function(){if(this.dataSource.hasChanges())this.dataSource.cancelChanges()},collapse:function(e){return this.view.collapse(e)},dataItem:function(e){var t=this.view.jqueryItemElement(e);if(!t||!t.data(W))return;return this.dataSource.getByUid(t.data(W))},delete:function(e){var t=this.view.jqueryItemElement(e);if(!t)return;this.dataSource.remove(this.dataItem(t));this.dataSource.sync()},edit:function(e){var t=this.view.jqueryItemElement(e),i=this.dataItem(t);if(!t||!i)return;this._edit(i)},expand:function(e){return this.view.expand(e)},getCollapsedNodes:function(){return this.wrapper.find("[aria-expanded='false']")},items:function(){return this.wrapper.find(l+h.card)},parent:function(e){var t=this.view.jqueryItemElement(e),i;if(!t)return;i=t.closest(l+h.group).attr(F);return this.wrapper.find("[aria-owns='"+i+"']")},saveChanges:function(){this.dataSource.sync()},select:function(e){var t=this.view._getToSelect(e);if(!t)return;else return this.view.select(t)},_avatarPreview:function(e,t){var i=this._form,a=e.avatar,r=function(){n.find(l+h.avatarPreview).remove();e.set("avatar",null)},n,o;if(!i)return;if(!t){t=a.split("\\").pop().split("/").pop();if(!t||t.indexOf(".")==-1)t=e.name}o={name:e.name,avatar:a,fileName:t,destroy:this.options.messages.destroy};n=i.wrapper;n.find(l+h.avatarPreview).remove();n.find('[type="file"]').closest(l+"k-form-field").prepend(d.template(j)(o));n.find(l+h.avatarPreview+M+l+"k-button").on(u,r)},_contextMenu:function(){var e=this.options,t=e.editable,i=e.messages,a={target:this.wrapper,filter:l+h.cardMenu,select:this._onMenuItemClick.bind(this),activate:this._onMenuOpen.bind(this),deactivate:this._onMenuClose.bind(this),showOn:"click",animation:false},r;if(t===true||t!==false&&(t.create||t.destroy||t.fields||t.parent)){r="<ul>";if(t===true){r+=n.edit;r+=n.create;r+=n.destroy}else{if(t.fields||t.parent)r+=n.edit;if(t.create)r+=n.create;if(t.destroy)r+=n.destroy}r=d.template(r)(i);this._menu=new p(r,a)}},_dataSource:function(){var e=this.dataSource,t=this.options.dataSource;if(e){e.unbind(i,this._dataSourceChangeHandler);e.unbind(S,this._errorHandler);e.unbind(q,this._progressHandler);e.unbind(O,this._requestStartHandler)}this._dataSourceChangeHandler=this._onDataSourceChange.bind(this);this._errorHandler=this._onDataSourceError.bind(this);this._progressHandler=this._progress.bind(this);this._requestStartHandler=this._onDataSourceRequestStart.bind(this);e=this.dataSource=o.create(t);e.bind(i,this._dataSourceChangeHandler);e.bind(S,this._errorHandler);e.bind(q,this._progressHandler);e.bind(O,this._requestStartHandler);this.view.dataSource=e},_destroyItem:function(e){var t=this,i=s("<div></div>"),a=t.options.messages,r=function(){t.wrapper.find(l+h.card+"[tabindex=0]"+T+l+h.nodesGroup+"[tabindex=0]").addClass(h.focused).trigger("focus")},n=this._confirmDestroy=new d.ui.Confirm(i,{title:a.destroyTitle,content:a.destroyContent,messages:{okText:a.destroy,cancel:a.cancel},show:function(){setTimeout(function(){n.element.trigger("focus")})}});n.open();n.result.done(function(){if(!t.trigger(k,{dataItem:e})){t.dataSource.remove(e);t.dataSource.sync()}t.view._shouldRestoreSelection=true;t.view._restoreSelection()});n.result.fail(r)},_edit:function(t){var i=this,e=s("<div>"),a=s("<div>"),r=this.options.messages,n=this._formOptions(t),o;if(!n)return;i._form=new d.ui.Form(e,n);if(!!t.avatar)i._avatarPreview(t);a.append(e);i._editWindow=new d.ui.Window(a,{title:r.edit,width:"380 px",modal:true,close:function(e){if(!o)if(!i.trigger(m,{dataItem:t}))i.cancelChanges();else e.preventDefault();else o=false},deactivate:function(){a.off(u);i._editWindow.destroy();i._editWindow=null;i.view._restoreSelection()}});a.append(d.template(A)({save:r.save,cancel:r.cancel}));i._editWindow.center().open();a.on(u,l+h.update,function(){if(i._form.validate()){o=true;if(!i.trigger(E,{dataItem:t})){i._editWindow.close();i.saveChanges()}}});a.on(u,l+h.cancel,function(){i._editWindow.close()})},_formOptions:function(e){var t=this.options,i=t.messages,a=t.editable.form,r=[],n,o;if(a)o=a.items;if((!o||o.length===0)&&(t.editable===true||t.editable&&t.editable.parent)){n=[{id:null,name:i.none}].concat(this.dataSource.prospectParents(e));r.push({field:"parentId",editor:"DropDownList",label:i.parent,editorOptions:{dataSource:n,dataValueField:"id",dataTextField:"name",valuePrimitive:true}})}if((!o||o.length===0)&&(t.editable===true||t.editable&&t.editable.fields))r=r.concat([{field:"name",label:i.name,validation:{required:true}},{field:"title",label:i.title},{field:"avatar",label:i.uploadAvatar,editor:this._uploadEditor.bind(this,e)}]);if(a)delete a.formData;if(r.length>0||o&&o.length>0)return c(true,{},{formData:e,items:r},a);else return false},_onDataSourceChange:function(e){if(e.action==="add"||e.action==="itemchange"&&this._editWindow)return;if(!e.action||e.action==="sync")if(this.trigger(w,e)){this._progress(false);return}this._progress(true);this.view.refresh();if(!e.action||e.action==="sync")this.trigger(_);this._progress(false)},_onDataSourceError:function(){this._progress(false)},_onDataSourceRequestStart:function(){this.view._cacheFocused()},_onMenuClose:function(){if(s(document.activeElement).closest("[role='alertdialog']").length===0)this.wrapper.find("[tabindex='0']").addClass(h.focused).trigger("focus")},_onMenuItemClick:function(e){var t=this,i=s(e.target).closest(l+h.node).find(l+h.card),a=t.dataItem(i),r=s(e.item).data(P),n;if(!a)return;if(r===y){if(!t.trigger(y,{dataItem:a}))t._edit(a)}else if(r===v){if(!t.trigger(v,{dataItem:a}))if(!a.loaded())t.dataSource.read({id:a.id}).then(function(){n=t.dataSource.add({parentId:a.id});t._edit(n)});else{n=t.dataSource.add({parentId:a.id});t._edit(n)}}else if(r===b)t._destroyItem(a)},_onMenuOpen:function(){this.view._cacheFocused();this.wrapper.find(l+h.focused).removeClass(h.focused);this._menu.element.find(l+h.menuItem).first().trigger(C)},_openMenu:function(e){if(this._menu)this._menu.open(e.find(l+h.cardMenu))},_progress:function(e){d.ui.progress(this.container,e)},_triggerCollapse:function(e){if(this.trigger(t,{item:e.item,dataItems:e.dataItems}))e.preventDefault()},_triggerExpand:function(e){if(this.trigger(x,{item:e.item,dataItems:e.dataItems}))e.preventDefault()},_triggerSelect:function(e){if(!this.trigger(H,{item:e.item,dataItems:e.dataItems})){this.view.select(e.item);this.trigger(i,{item:e.item,dataItems:e.dataItems})}},_uploadEditor:function(r,e){var n=this;s('<input type="file">').appendTo(e).kendoUpload({async:false,multiple:false,select:function(e){var t=e.files[0];var i=t.rawFile;var a=new FileReader;if(t.validationErrors&&t.validationErrors.length>0)return;if(i){a.onloadend=function(){r.set("avatar",this.result);n._avatarPreview(r,i.name)};a.readAsDataURL(i)}},validation:{allowedExtensions:[".gif",".jpg",".png"],maxFileSize:1048576}})},_view:function(){if(this.options.groupField!==null&&this.options.groupField!==r)this.view=new d.orgChart.GroupedView(this.container,this.options);else this.view=new d.orgChart.SingleView(this.container,this.options);this.view.bind(H,this._triggerSelect.bind(this));this.view.bind(x,this._triggerExpand.bind(this));this.view.bind(t,this._triggerCollapse.bind(this));this.view.bind(D,this._openMenu.bind(this))},_wrapper:function(){var e=s("<div class='k-orgchart-container'>");this.wrapper=this.element;this.container=e;this.wrapper.addClass(h.wrapper);this.wrapper.append(e)}});return d.ui.plugin(V),window.kendo})?a.apply(t,i):a)||(e.exports=t)},1380:function(e,t){e.exports=require("./orgchart/data")},1381:function(e,t){e.exports=require("./orgchart/view")},1382:function(e,t){e.exports=require("./kendo.form")}});