').appendTo(i)),i.children("."+d).addClass(p).addClass("hidden");var f=Math.max(0,s*Math.floor((r-l)/o-1)),m=Math.min(h-1,1+s*Math.ceil((r-l+u)/o)),g=Math.ceil(f/s)*o,k=Math.ceil((h-m-1)/s)*o;b.height(g);for(var C=f;C<=m;C++){var x=t.options.render(C,e,c?e[C]:null);x.addClass(d).removeClass(p).removeClass("hidden")}return v.height(k),i.children("."+p).remove(),b.prependTo(i),v.appendTo(i),t.scrollHeight=t.$[0].scrollHeight,t.rendering=!1,r=Math.min(t.scrollHeight-u,Math.max(g,r)),t.scrollTop=r,r!==t.$.scrollTop()&&t.$.data("ignore-next-scroll",!0).scrollTop(r),!0},n.prototype.destroy=function(){that.$.off("."+e)},n.DEFAULTS={itemClassName:"virtual-list-item",countPerRow:1},a.fn.virtualList=function(t){return this.each(function(){var r=a(this),i=r.data(e);if(i){if("string"==typeof t)return i[t]();i.destroy()}r.data(e,i=new n(this,t))})}}(jQuery),function(a){"use strict";var e="zui.kanban",n="object"==typeof CSS&&CSS.supports("display","flex"),t=function(n,r){var i=this;if(i.name=e,i.$=a(n).addClass("kanban"),r=i.setOptions(a.extend({},t.DEFAULTS,this.$.data(),r)),r.onAction){var d=function(e){var n=a(this);r.onAction(n.data("action"),n,e,i)};i.$.on("click",".action",d).on("dblclick",".action-dbc",d)}var o=r.droppable;if("auto"===o&&(o=!r.readonly),o){var s=r.sortable;"function"==typeof s?s={finish:s}:s&&"object"!=typeof s&&(s={});var l=0;"function"==typeof o?o={drop:o}:"object"!=typeof o&&(o={});var c=a.extend({dropOnMouseleave:!0,selector:".kanban-item",target:".kanban-lane-col:not(.kanban-col-sorting)",mouseButton:"left"},o,{before:function(e){if(o.before){var n=o.before(e);if(n===!1)return n}if(s){var t=e.element.closest(".kanban-lane-items");t.closest(".kanban-col").addClass("kanban-col-sorting"),i._sortResult=null,i._$sortItems=t;var r=t.data("zui.sortable");r||t.sortable(a.extend({},s,{selector:".kanban-item",trigger:".kanban-card",dragCssClass:"kanban-item-sorting",noShadow:!0,finish:function(a){a.changed&&a.list.length>1&&(i._sortResult=a)}})).triggerHandler(e.event)}},drop:function(a){o.drop&&o.drop(a),r.onAction&&r.onAction("dropItem",a.element,a,i)},start:function(e){i.$.addClass("kanban-dragging"),l&&clearTimeout(l),l=setTimeout(function(){a(e.shadowElement).addClass("in"),l=0},50),o.start&&o.start(e)},always:function(a){if(i.$.removeClass("kanban-dragging"),l&&(clearTimeout(l),l=0),s){var e=i._sortResult;if(i._$sortItems.sortable("destroy").closest(".kanban-col").removeClass("kanban-col-sorting"),e&&e.target&&e.target.closest(".kanban-lane-col")[0]===a.target[0]){var n=e.element.closest(".kanban-lane-items").data("cards"),t=String(e.element.data("id")),r=String(e.target.data("id")),d=n.map(function(a){return a.id}),c=d.indexOf(t);d.splice(c,1);var h=n.splice(c,1),u=d.indexOf(r)+("before"===e.insert?0:1);d.splice(u,0,c),n.splice(u,0,h[0]),e.orders=d,e.cards=n,s.finish&&s.finish(e)}}o.always&&o.always(a)}});i.$.droppable(c)}r.onCreate&&r.onCreate(i)};t.prototype.setOptions=function(e){var t=this,r=a.extend({},t.options,{data:t.data},e);t.options=r,r.useFlex&&!n&&(r.useFlex=!1),t.$.toggleClass("no-flex",!r.useFlex).toggleClass("use-flex",!!r.useFlex);var i=!!a.fn.virtualRender&&r.virtualize;return i&&("object"!=typeof i&&(i={lane:!0}),t.virtualize=a.extend({},i)),t.data=r.data||[],t.render(t.data),r},t.prototype.render=function(e){var n=this;e&&(n.data=e),n.data&&!Array.isArray(n.data)&&(n.data=[n.data]);var t,r=n.options,i=n.data||[];r.fixScroll&&(t=a(window).scrollTop(),a(window).height()+t===document.body.scrollHeight&&(t="bottom")),r.beforeRender&&r.beforeRender(n,i),n.$.toggleClass("kanban-readonly",!!r.readonly).toggleClass("kanban-no-lane-name",!!r.noLaneName),n.$.children(".kanban-board").addClass("kanban-expired"),n.maxKanbanBoardWidth=0;for(var d=0;d
1&&n.$.children(".kanban-board").css("min-width",n.maxKanbanBoardWidth),t&&a(window).scrollTop("bottom"===t?document.body.scrollHeight:t),r.onRender&&r.onRender(n)},t.prototype.layoutKanban=function(a,e){for(var n=this,t=n.options,r=t.noLaneName?0:t.laneNameWidth,i=0,d={},o=!1,s=[],l=0;l0&&t.subLaneSpace&&(k.$height+=t.subLaneSpace)}}else for(var $=k.items||k.cards||{},x=0;x-1){var r=n.data[t];e=a.extend(r,e),n.data[t]=e}else n.data.push(e)}e.id||(e.id=a.zui.uuid());var i=e.id,d=n.options,o=n.$,s=o.children('.kanban-board[data-id="'+i+'"]');s.length?s.removeClass("kanban-expired"):s=a('').appendTo(o),n.layoutKanban(e,s),n.renderKanbanHeader(e,s),s.children(".kanban-lane").addClass("kanban-expired");for(var l=e.lanes||[],c=null,h=0;h').prependTo(n),r.useFlex||d.addClass("clearfix")),d.css("height",(i?2:1)*r.headerHeight).toggleClass("kanban-header-has-parent",!!i);var o=d.children(".kanban-cols");o.css("left",e.$layout.laneNameWidth).children(".kanban-col").addClass("kanban-expired");for(var s=e.columns,l=e.$layout.columnsMap||{},c=null,h=null,u=0;u