Brak opisu

dataTables.contextualActions.min.js 6.9KB

1
  1. jQuery.fn.dataTable.Api.register("contextualActions()",function(u){var t=this.table();const b={DIVIDER:"divider",OPTION:"option",STATIC:"static"},h={isDisabled:function(e,t){return e.type!==b.STATIC&&0===t.length||void 0!==e.multi&&!1===e.multi&&1<t.length||"function"==typeof e.isDisabled&&((void 0===e.isDisabledStrictMode||"boolean"==typeof e.isDisabledStrictMode&&!1===e.isDisabledStrictMode)&&0===t.filter(t=>!e.isDisabled(t)).length||"boolean"==typeof e.isDisabledStrictMode&&!0===e.isDisabledStrictMode&&t.some(t=>e.isDisabled(t)))||e.type===b.STATIC&&"function"==typeof e.isDisabled&&e.isDisabled()}};if((u=function t(e,...i){if(!i.length)return e;var n=i.shift();if(s(e)&&s(n))for(const o in n)s(n[o])?(e[o]||Object.assign(e,{[o]:{}}),t(e[o],n[o])):Object.assign(e,{[o]:n[o]});return t(e,...i)}({contextMenu:{enabled:!0,isMulti:!1,xoffset:-10,yoffset:-10,showSpeed:"0.30s",headerRenderer:function(){return""}},buttonList:{enabled:!0,groupClass:"btn-group",iconOnly:!1,disabledOpacity:.5,dividerSpacing:10},classes:[],iconPrefix:"",items:[],deselectAfterAction:!0,showConfirmationMethod:function(t){t.callback(window.confirm(t.message))}},u=null==u?{}:u)).buttonList.enabled&&void 0===u.buttonList.containerSelector)throw"The buttonList.containerSelector option must be specified if the buttonList is enabled, to specify where the buttons will be created";var y={dt:null,table:null,contextMenuId:"",rightClickedRowData:"",init:function(o){this.dt=t,this.table=$(this.dt.container()).find("table"),$(window).click(function(t){$("#"+y.contextMenuId).is(":visible")&&!$(t.target).closest(".dropdown-menu").length&&i()}),this.contextMenuId=(this.table instanceof jQuery?this.table.attr("id"):this.table.id)+"-context-menu",this.rightClickedRowData=[];var s=this;$(this.table).on("contextmenu","tr",function(t){o.contextMenu.isMulti||y.table.DataTable().rows().deselect(),s.dt.row(this).select();var e=s.table.DataTable().rows({selected:!0}).toArray()[0],e=s.table.DataTable().rows(e).data().toArray();if(o.contextMenu.enabled&&void 0!==e)return i(),s.rightClickedRowData=e,e=t.pageX,t=t.pageY,function(a,t,l,d,c){var r=$('<div id="'+a+'" class="dropdown-menu shadow'+t.join(" ")+'">');r.css({display:"block",visibility:"hidden",opacity:0,transform:"translateY(-30px)",transition:"0.15s ease all"}),r.append('<h6 class="dropdown-header"></h6>'),$.each(d,function(t,e){var i,n,o,s;"function"==typeof e.isHidden&&(0===c.length||c.some(t=>e.isHidden(t)))||(e.type===b.DIVIDER?0<t&&t!==d.length-1&&d[t-1].type!==b.DIVIDER&&r.append('<div class="dropdown-divider"></div>'):e.type===b.OPTION&&(i="",void 0!==e.iconClass&&""!==e.icon&&(i='<i style="margin-right:15px;" class="'+l+" "+e.iconClass+'"></i>'),n=void 0!==e.contextMenuClasses?e.contextMenuClasses.join(" "):"",o=void 0!==e.classes?e.classes.join(" "):"",t=void 0!==e.multiTitle&&1<c.length?e.multiTitle||"":e.title||"",s=$.parseHTML('<a class="dropdown-item '+o+" "+n+'" style="cursor: pointer;">'+i+t+"</a>"),h.isDisabled(e,c)&&$(s).addClass("disabled").css("opacity","0.5"),1<c.length&&(t=("function"==typeof e.isDisabled?c.filter(t=>!e.isDisabled(t)):c).length,$(s).append(" ("+t+")")),void 0!==e.confirmation?$(s).click(function(){v(e,c),f(a)}):$(s).click(function(){var t=c.filter(t=>void 0===e.isDisabled||!e.isDisabled(t));f(a),e.action(t,$(s)),u.deselectAfterAction?y.dt.rows().deselect():y.update()}),r.append(s)))}),r.children(":last-child.dropdown-divider").remove(),r.children().each(function(){$(this).hasClass("dropdown-divider")&&$(this).prev().hasClass("dropdown-divider")&&$(this).remove()}),$("body").append(r)}(y.contextMenuId,u.classes,u.iconPrefix,u.items,y.rightClickedRowData),$("#"+y.contextMenuId).css({top:t+u.contextMenu.yoffset,left:e+u.contextMenu.xoffset}),$("#"+y.contextMenuId).find(".dropdown-header").html(u.contextMenu.headerRenderer(y.rightClickedRowData)),setTimeout(function(){$("#"+y.contextMenuId).css({display:"block",visibility:"visible",opacity:1,transform:"translateY(0px)",transition:u.contextMenu.showSpeed+" ease all","z-index":99999})},1),!1}),this.dt.on("select",function(t,e,i,n){"row"===i&&(i=e.rows({selected:!0}).toArray()[0],i=s.table.DataTable().rows(i).data().toArray(),a(0,o,i))}),this.dt.on("deselect",function(t,e,i,n){"row"===i&&(i=e.rows({selected:!0}).toArray()[0],i=s.table.DataTable().rows(i).data().toArray(),a(0,o,i))}),a(this.dt,o,[])},update:function(){var t=this.dt.rows({selected:!0}).data().toArray();a(this.dt,u,t)}};function i(){$("#"+y.contextMenuId).removeClass("show").hide(),y.rightClickedRowData=[],f(y.contextMenuId)}function a(t,e,i){var n,o,s;e.buttonList.enabled&&(n=e.buttonList,o=e.classes,s=e.items,e=e.iconPrefix,i=i,function(t,e){$.each(e,function(t,e){$(u.containerSelector).removeClass(e)}),$(t).empty()}(n.containerSelector,o),function(l,t,d,c,r){var u='<div class="'+l.groupClass+'"></div>',f=[],p=null;$.each(d,function(t,e){if(null===p)p=$(u);else{if(0===t&&e.type===b.DIVIDER)return;if(0<t&&e.type===b.DIVIDER&&d[t-1].type===b.DIVIDER)return;if(t===d.length-1&&e.type===b.DIVIDER)return;if(0<t&&e.type===b.DIVIDER)return f.push(p),void(p=$(u)).css("margin-left",l.dividerSpacing+"px")}var i,n,o,s,a;"function"==typeof e.isHidden&&(0===r.length||r.some(t=>e.isHidden(t)))||e.type!==b.OPTION&&e.type!==b.STATIC||(s="",o=l.iconOnly?"":"margin-right:10px;",void 0!==e.iconClass&&""!==e.icon&&(s='<i style="'+o+'" class="'+c+" "+e.iconClass+'"></i>'),i=void 0!==e.buttonClasses?e.buttonClasses.join(" "):"",n=void 0!==e.classes?e.classes.join(" "):"",t="",o=void 0!==e.multiTitle&&1<r.length?e.multiTitle||"":e.title||"",t=l.iconOnly?s:s+o,s=("function"==typeof e.isDisabled?r.filter(t=>!e.isDisabled(t)):r).length,l.iconOnly?e.type!==b.STATIC&&1<r.length&&(o+=" ("+s+")"):o="",a=$.parseHTML('<button class="'+i+" "+n+'" data-original-title="'+o+'" >'+t+"</button>"),void 0!==e.id&&$(a).attr("id",e.id),(t=h.isDisabled(e,r))?($(a).addClass("disabled"),$(a).attr("disabled","disabled"),$(a).css("cursor","not-allowed"),$(a).css("opacity",l.disabledOpacity),$(a).removeAttr("title","")):!l.iconOnly&&e.type!==b.STATIC&&1<r.length&&$(a).append(" ("+s+")"),!t&&l.iconOnly&&""!==o&&$(a).attr("data-toggle","tooltip"),e.type===b.STATIC?$(a).click(function(){e.action(),l.deselectAfterAction?y.dt.rows().deselect():y.update()}):e.type===b.OPTION&&(void 0!==e.confirmation?$(a).click(function(){v(e,r)}):$(a).click(function(){var t=r.filter(t=>void 0===e.isDisabled||!e.isDisabled(t));e.action(t,$(a)),l.deselectAfterAction?y.dt.rows().deselect():y.update()})),p.append(a))}),f.push(p),$.each(t,function(t,e){$(l.containerSelector).addClass(e)}),$.each(f,function(t,e){0<e.children().length&&$(l.containerSelector).append(e)})}(n,o,s,e,i))}function f(t){$("#"+t+".dropdown-menu").remove()}function v(e,t,i){var n=t.filter(t=>void 0===e.isDisabled||!e.isDisabled(t)),t=e.confirmation(n);t.callback=function(t){t&&(e.action(n,i),u.deselectAfterAction?y.dt.rows().deselect():y.update())},u.showConfirmationMethod(t)}function s(t){return t&&"object"==typeof t&&!Array.isArray(t)}return y.init(u),y});