/** * DO NOT EDIT THIS FILE. * See the following change record for more information, * https://www.drupal.org/node/2815083 * @preserve **/ (function ($, Drupal, window) { Drupal.behaviors.tableResponsive = { attach: function attach(context, settings) { var $tables = $(context).find('table.responsive-enabled').once('tableresponsive'); if ($tables.length) { var il = $tables.length; for (var i = 0; i < il; i++) { TableResponsive.tables.push(new TableResponsive($tables[i])); } } } }; function TableResponsive(table) { this.table = table; this.$table = $(table); this.showText = Drupal.t('Show all columns'); this.hideText = Drupal.t('Hide lower priority columns'); this.$headers = this.$table.find('th'); this.$link = $('').attr('title', Drupal.t('Show table cells that were hidden to make the table fit within a small screen.')).on('click', $.proxy(this, 'eventhandlerToggleColumns')); this.$table.before($('
').append(this.$link)); $(window).on('resize.tableresponsive', $.proxy(this, 'eventhandlerEvaluateColumnVisibility')).trigger('resize.tableresponsive'); } $.extend(TableResponsive, { tables: [] }); $.extend(TableResponsive.prototype, { eventhandlerEvaluateColumnVisibility: function eventhandlerEvaluateColumnVisibility(e) { var pegged = parseInt(this.$link.data('pegged'), 10); var hiddenLength = this.$headers.filter('.priority-medium:hidden, .priority-low:hidden').length; if (hiddenLength > 0) { this.$link.show().text(this.showText); } if (!pegged && hiddenLength === 0) { this.$link.hide().text(this.hideText); } }, eventhandlerToggleColumns: function eventhandlerToggleColumns(e) { e.preventDefault(); var self = this; var $hiddenHeaders = this.$headers.filter('.priority-medium:hidden, .priority-low:hidden'); this.$revealedCells = this.$revealedCells || $(); if ($hiddenHeaders.length > 0) { $hiddenHeaders.each(function (index, element) { var $header = $(this); var position = $header.prevAll('th').length; self.$table.find('tbody tr').each(function () { var $cells = $(this).find('td').eq(position); $cells.show(); self.$revealedCells = $().add(self.$revealedCells).add($cells); }); $header.show(); self.$revealedCells = $().add(self.$revealedCells).add($header); }); this.$link.text(this.hideText).data('pegged', 1); } else { this.$revealedCells.hide(); this.$revealedCells.each(function (index, element) { var $cell = $(this); var properties = $cell.attr('style').split(';'); var newProps = []; var match = /^display\s*\:\s*none$/; for (var i = 0; i < properties.length; i++) { var prop = properties[i]; prop.trim(); var isDisplayNone = match.exec(prop); if (isDisplayNone) { continue; } newProps.push(prop); } $cell.attr('style', newProps.join(';')); }); this.$link.text(this.showText).data('pegged', 0); $(window).trigger('resize.tableresponsive'); } } }); Drupal.TableResponsive = TableResponsive; })(jQuery, Drupal, window);