Your IP : 18.224.33.83
(function(){"use strict";BX.namespace("BX.Kanban");BX.Kanban.Item=function(t){if(!BX.type.isPlainObject(t)){throw new Error("BX.Kanban.Item: 'options' is not an object.")}this.options=t;if(!BX.Kanban.Utils.isValidId(t.id)){throw new Error("BX.Kanban.Item: 'id' parameter is not valid.")}this.id=t.id;this.grid=null;this.columnId=null;this.layout={container:null,dragTarget:null,bodyContainer:null};this.dragElement=null;this.draggable=true;this.droppable=true;this.countable=true;this.visible=true;this.data=Object.create(null);this.setOptions(t)};BX.Kanban.Item.prototype={getId:function(){return this.id},getColumnId:function(){return this.columnId},setColumnId:function(t){this.columnId=t},getColumn:function(){if(this.getGrid()){return this.getGrid().getColumn(this.getColumnId())}return null},setGrid:function(t){if(t instanceof BX.Kanban.Grid){this.grid=t}},getGrid:function(){return this.grid},setOptions:function(t){if(!t){return}this.setData(t.data);this.droppable=BX.type.isBoolean(t.droppable)?t.droppable:this.droppable;this.draggable=BX.type.isBoolean(t.draggable)?t.draggable:this.draggable;this.countable=BX.type.isBoolean(t.countable)?t.countable:this.countable;this.visible=BX.type.isBoolean(t.visible)?t.visible:this.visible},getData:function(){return this.data},setData:function(t){if(BX.type.isPlainObject(t)){this.data=t}},isCountable:function(){return this.countable},isVisible:function(){return this.visible},getGridData:function(){return this.getGrid().getData()},renderLayout:function(){var t=this.getBodyContainer();BX.cleanNode(t);t.appendChild(this.render());return this.getContainer()},getContainer:function(){if(this.layout.container!==null){return this.layout.container}this.layout.container=BX.create("div",{attrs:{className:"main-kanban-item","data-id":this.getId(),"data-type":"item"},children:[this.getDragTarget(),this.getBodyContainer()]});this.makeDraggable();this.makeDroppable();return this.layout.container},getDragTarget:function(){if(!this.layout.dragTarget){this.layout.dragTarget=BX.create("div",{attrs:{className:"main-kanban-item-drag-target"}})}return this.layout.dragTarget},getDragElement:function(){return this.dragElement},getBodyContainer:function(){if(!this.layout.bodyContainer){this.layout.bodyContainer=BX.create("div",{attrs:{className:"main-kanban-item-wrapper"}})}return this.layout.bodyContainer},render:function(){if(!this.layout.content){this.layout.content=BX.create("div",{props:{className:"main-kanban-item-default"}})}this.layout.content.style.borderLeft="2px solid #"+this.getColumn().getColor();this.layout.content.textContent="#"+this.getId();return this.layout.content},dispose:function(){jsDD.unregisterDest(this.getContainer());jsDD.unregisterObject(this.getContainer())},makeDraggable:function(){if(!this.isDraggable()){return}var t=this.getContainer();t.onbxdragstart=BX.delegate(this.onDragStart,this);t.onbxdrag=BX.delegate(this.onDrag,this);t.onbxdragstop=BX.delegate(this.onDragStop,this);jsDD.registerObject(t)},makeDroppable:function(){if(!this.isDroppable()){return}var t=this.getContainer();t.onbxdestdraghover=BX.delegate(this.onDragEnter,this);t.onbxdestdraghout=BX.delegate(this.onDragLeave,this);t.onbxdestdragfinish=BX.delegate(this.onDragDrop,this);t.onbxdestdragstop=BX.delegate(this.onItemDragEnd,this);jsDD.registerDest(t,30);if(this.getGrid().getDragMode()!==BX.Kanban.DragMode.ITEM){this.disableDropping()}},disableDragging:function(){if(this.isDraggable()){jsDD.unregisterObject(this.getContainer())}},enableDragging:function(){if(this.isDraggable()){jsDD.registerObject(this.getContainer())}},disableDropping:function(){if(this.isDroppable()){jsDD.disableDest(this.getContainer())}},enableDropping:function(){if(this.isDroppable()){jsDD.enableDest(this.getContainer())}},isDraggable:function(){return this.draggable&&this.getGrid().canSortItems()},isDroppable:function(){return this.droppable},onDragStart:function(){this.getContainer().classList.add("main-kanban-item-disabled");if(!this.dragElement){var t=this.getContainer();var e=this.getBodyContainer();this.dragElement=t.cloneNode(true);this.dragElement.style.position="absolute";this.dragElement.style.width=e.offsetWidth+"px";this.dragElement.className="main-kanban-item main-kanban-item-drag";document.body.appendChild(this.dragElement)}BX.onCustomEvent(this.getGrid(),"Kanban.Grid:onItemDragStart",[this])},onDragStop:function(t,e){BX.onCustomEvent(this.getGrid(),"Kanban.Grid:onItemDragStop",[this]);this.getContainer().classList.remove("main-kanban-item-disabled");BX.remove(this.dragElement);this.dragElement=null},onDrag:function(t,e){if(this.dragElement){this.dragElement.style.left=t+"px";this.dragElement.style.top=e+"px"}},onDragEnter:function(t,e,i){var n=this.getGrid().getItemByElement(t);if(n!==this){this.showDragTarget(n.getBodyContainer().offsetHeight)}},onDragLeave:function(t,e,i){this.hideDragTarget()},onDragDrop:function(t,e,i){this.hideDragTarget();var n=this.getGrid().getItemByElement(t);var a=new BX.Kanban.DragEvent;a.setItem(n);a.setTargetColumn(this.getColumn());a.setTargetItem(this);BX.onCustomEvent(this.getGrid(),"Kanban.Grid:onBeforeItemMoved",[a]);if(!a.isActionAllowed()){return}var r=this.getGrid().moveItem(n,this.getColumn(),this);if(r){BX.onCustomEvent(this.getGrid(),"Kanban.Grid:onItemMoved",[n,this.getColumn(),this])}},onItemDragEnd:function(t,e,i){this.disableDropping()},showDragTarget:function(t){this.getContainer().classList.add("main-kanban-item-target-shown");this.getDragTarget().style.height=t+"px"},hideDragTarget:function(){this.getContainer().classList.remove("main-kanban-item-target-shown");this.getDragTarget().style.removeProperty("height")}};BX.Kanban.DraftItem=function(t){BX.Kanban.Item.apply(this,arguments);this.asyncEventStarted=false;this.draftContainer=null;this.draftTextArea=null};BX.Kanban.DraftItem.prototype={__proto__:BX.Kanban.Item.prototype,constructor:BX.Kanban.DraftItem,render:function(){if(this.draftContainer){return this.draftContainer}this.draftContainer=BX.create("div",{props:{className:"main-kanban-item-draft"},children:[this.getDraftTextArea()]});return this.draftContainer},setGrid:function(t){BX.Kanban.Item.prototype.setGrid.apply(this,arguments);BX.addCustomEvent(this.getGrid(),"Kanban.Grid:onItemDragStart",BX.proxy(this.applyDraftEditMode,this))},getDraftTextArea:function(){if(this.draftTextArea){return this.draftTextArea}this.draftTextArea=BX.create("textarea",{attrs:{className:"main-kanban-item-draft-textarea",placeholder:this.getGrid().getMessage("ITEM_TITLE_PLACEHOLDER")},events:{blur:this.handleDraftTextAreaBlur.bind(this),keydown:this.handleDraftTextAreaKeyDown.bind(this)}});return this.draftTextArea},applyDraftEditMode:function(){if(this.asyncEventStarted){return}this.asyncEventStarted=true;var t=BX.util.trim(this.getDraftTextArea().value);if(!t.length){this.removeDraftItem();return}this.setData({title:t});this.getContainer().classList.add("main-kanban-item-draft-disabled");this.getDraftTextArea().disabled=true;var e=this.getGrid().getEventPromise("Kanban.Grid:onItemAddedAsync",null,this.onItemAddedFulfilled.bind(this),this.onItemAddedRejected.bind(this));e.fulfill(this)},onItemAddedFulfilled:function(t){if(!BX.type.isPlainObject(t)){this.removeDraftItem();return}if(!BX.Kanban.Utils.isValidId(t.targetId)){var e=this.getColumn().getNextItemSibling(this);if(e){t.targetId=e.getId()}}this.removeDraftItem();var i=this.getGrid().addItem(t);if(i&&this.getGrid().getDragMode()===BX.Kanban.DragMode.NONE){var n=this.getGrid().getColumns().some(function(t){return t.getDraftItem()!==null});if(!n){var a=i.getColumn().getNextItemSibling(i);i.getColumn().addDraftItem(a)}}},onItemAddedRejected:function(t){this.removeDraftItem()},removeDraftItem:function(){this.asyncEventStarted=true;BX.removeCustomEvent(this.getGrid(),"Kanban.Grid:onItemDragStart",BX.proxy(this.applyDraftEditMode,this));this.getColumn().removeDraftItem()},focusDraftTextArea:function(){this.getDraftTextArea().focus()},handleDraftTextAreaBlur:function(t){setTimeout(function(){this.applyDraftEditMode()}.bind(this),0)},handleDraftTextAreaKeyDown:function(t){if(t.keyCode===13){this.applyDraftEditMode()}else if(t.keyCode===27){this.removeDraftItem()}}}})();