Mercurial > nebulaweb3
view default/node_modules/tablesaw/src/tables.minimap.js @ 0:1d038bc9b3d2 default tip
Up:default
author | Liny <dev@neowd.com> |
---|---|
date | Sat, 31 May 2025 09:21:51 +0800 |
parents | |
children |
line wrap: on
line source
/* * tablesaw: A set of plugins for responsive tables * minimap: a set of dots to show which columns are currently visible. * Copyright (c) 2013 Filament Group, Inc. * MIT License */ (function() { var MiniMap = { attr: { init: "data-tablesaw-minimap" }, show: function(table) { var mq = table.getAttribute(MiniMap.attr.init); if (mq === "") { // value-less but exists return true; } else if (mq && "matchMedia" in window) { // has a mq value return window.matchMedia(mq).matches; } return false; } }; function createMiniMap($table) { var tblsaw = $table.data("tablesaw"); var $btns = $('<div class="tablesaw-advance minimap">'); var $dotNav = $('<ul class="tablesaw-advance-dots">').appendTo($btns); var hideDot = "tablesaw-advance-dots-hide"; var $headerCells = $table.data("tablesaw")._getPrimaryHeaderCells(); // populate dots $headerCells.each(function() { $dotNav.append("<li><i></i></li>"); }); $btns.appendTo(tblsaw.$toolbar); function showHideNav() { if (!MiniMap.show($table[0])) { $btns.css("display", "none"); return; } $btns.css("display", "block"); // show/hide dots var dots = $dotNav.find("li").removeClass(hideDot); $table.find("thead th").each(function(i) { if ($(this).css("display") === "none") { dots.eq(i).addClass(hideDot); } }); } // run on init and resize showHideNav(); $(window).on(Tablesaw.events.resize, showHideNav); $table .on("tablesawcolumns.minimap", function() { showHideNav(); }) .on(Tablesaw.events.destroy + ".minimap", function() { var $t = $(this); tblsaw.$toolbar.find(".tablesaw-advance").remove(); $(window).off(Tablesaw.events.resize, showHideNav); $t.off(".minimap"); }); } // on tablecreate, init $(document).on(Tablesaw.events.create, function(e, tablesaw) { if ( (tablesaw.mode === "swipe" || tablesaw.mode === "columntoggle") && tablesaw.$table.is("[ " + MiniMap.attr.init + "]") ) { createMiniMap(tablesaw.$table); } }); // TODO OOP this better Tablesaw.MiniMap = MiniMap; })();