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