UNPKG

slickgrid

Version:

A lightning fast JavaScript grid/spreadsheet

9 lines 3.32 kB
/** * SlickGrid v3.0.2 * (c) 2009-present Michael Leibman * homepage: http://github.com/mleibman/slickgrid * license: MIT * date: 2022-11-14 * file: ./controls/slick.columnpicker - Copy.js */ "use strict";!function(h){h.extend(!0,window,{Slick:{Controls:{ColumnPicker:function(s,e,l){var u,r,d,a=e,n=new Slick.Event,t={fadeSpeed:250,hideForceFitButton:!1,hideSyncResizeButton:!1,forceFitTitle:"Force fit columns",syncResizeTitle:"Synchronous resize"};function o(e){e.onHeaderContextMenu.subscribe(p),e.onColumnsReordered.subscribe(m),l=h.extend({},t,l),r=h("<div class='slick-columnpicker' style='display:none' />").appendTo(document.body);h("<button type='button' class='close' data-dismiss='slick-columnpicker' aria-label='Close'><span class='close' aria-hidden='true'>&times;</span></button>").appendTo(r);(l.columnPickerTitle||l.columnPicker&&l.columnPicker.columnTitle)&&(e=l.columnPickerTitle||l.columnPicker.columnTitle,h("<div class='title'/>").append(e).appendTo(r)),r.on("click",k),u=h("<span class='slick-columnpicker-list' />"),h(document.body).on("mousedown",i),h(window).on("beforeunload",c)}function c(){a.onHeaderContextMenu.unsubscribe(p),a.onColumnsReordered.unsubscribe(m),h(document.body).off("mousedown",i),h("div.slick-columnpicker").hide(l.fadeSpeed),r.remove()}function i(e){(r&&r[0]!=e.target&&!h.contains(r[0],e.target)||"close"==e.target.className)&&r.hide(l.fadeSpeed)}function p(e,n){e.preventDefault(),u.empty(),m(),d=[];for(var t,o,c,i=0;i<s.length;i++)t=h("<li />").appendTo(u),o=h("<input type='checkbox' />").data("column-id",s[i].id),d.push(o),null!=a.getColumnIndex(s[i].id)&&o.attr("checked","checked"),h("<label />").html(s[i].name).prepend(o).appendTo(t);!l.columnPicker||l.columnPicker.hideForceFitButton&&l.columnPicker.hideSyncResizeButton||h("<hr/>").appendTo(u),l.columnPicker&&l.columnPicker.hideForceFitButton||(c=l.columnPicker&&l.columnPicker.forceFitTitle||l.forceFitTitle,t=h("<li />").appendTo(u),o=h("<input type='checkbox' />").data("option","autoresize"),h("<label />").text(c).prepend(o).appendTo(t),a.getOptions().forceFitColumns&&o.attr("checked","checked")),l.columnPicker&&l.columnPicker.hideSyncResizeButton||(c=l.columnPicker&&l.columnPicker.syncResizeTitle||l.syncResizeTitle,t=h("<li />").appendTo(u),o=h("<input type='checkbox' />").data("option","syncresize"),h("<label />").text(c).prepend(o).appendTo(t),a.getOptions().syncColumnCellResize&&o.attr("checked","checked")),r.css("top",e.pageY-10).css("left",e.pageX-10).css("max-height",h(window).height()-e.pageY-10).fadeIn(l.fadeSpeed),u.appendTo(r)}function m(){for(var e=a.getColumns().slice(0),n=new Array(s.length),t=0;t<n.length;t++)void 0===a.getColumnIndex(s[t].id)?n[t]=s[t]:n[t]=e.shift();s=n}function k(e){var t;"autoresize"==h(e.target).data("option")?e.target.checked?(a.setOptions({forceFitColumns:!0}),a.autosizeColumns()):a.setOptions({forceFitColumns:!1}):"syncresize"==h(e.target).data("option")?e.target.checked?a.setOptions({syncColumnCellResize:!0}):a.setOptions({syncColumnCellResize:!1}):h(e.target).is(":checkbox")&&(t=[],h.each(d,function(e,n){h(this).is(":checked")&&t.push(s[e])}),t.length?(a.setColumns(t),n.notify({columns:t,grid:a})):h(e.target).attr("checked","checked"))}return o(a),{init:o,getAllColumns:function(){return s},destroy:c,onColumnsChanged:n}}}}})}(jQuery);