/** * DO NOT EDIT THIS FILE. * See the following change record for more information, * https://www.drupal.org/node/2815083 * @preserve **/ (function ($, Drupal, displace) { function TableHeader(table) { var $table = $(table); this.$originalTable = $table; this.$originalHeader = $table.children('thead'); this.$originalHeaderCells = this.$originalHeader.find('> tr > th'); this.displayWeight = null; this.$originalTable.addClass('sticky-table'); this.tableHeight = $table[0].clientHeight; this.tableOffset = this.$originalTable.offset(); this.$originalTable.on('columnschange', { tableHeader: this }, function (e, display) { var tableHeader = e.data.tableHeader; if (tableHeader.displayWeight === null || tableHeader.displayWeight !== display) { tableHeader.recalculateSticky(); } tableHeader.displayWeight = display; }); this.createSticky(); } function forTables(method, arg) { var tables = TableHeader.tables; var il = tables.length; for (var i = 0; i < il; i++) { tables[i][method](arg); } } function tableHeaderInitHandler(e) { once('tableheader', $(e.data.context).find('table.sticky-enabled')).forEach(function (table) { TableHeader.tables.push(new TableHeader(table)); }); forTables('onScroll'); } Drupal.behaviors.tableHeader = { attach: function attach(context) { $(window).one('scroll.TableHeaderInit', { context: context }, tableHeaderInitHandler); } }; function scrollValue(position) { return document.documentElement[position] || document.body[position]; } function tableHeaderResizeHandler(e) { forTables('recalculateSticky'); } function tableHeaderOnScrollHandler(e) { forTables('onScroll'); } function tableHeaderOffsetChangeHandler(e, offsets) { forTables('stickyPosition', offsets.top); } $(window).on({ 'resize.TableHeader': tableHeaderResizeHandler, 'scroll.TableHeader': tableHeaderOnScrollHandler }); $(document).on({ 'columnschange.TableHeader drupalToolbarTrayChange': tableHeaderResizeHandler, 'drupalViewportOffsetChange.TableHeader': tableHeaderOffsetChangeHandler }); $.extend(TableHeader, { tables: [] }); $.extend(TableHeader.prototype, { minHeight: 100, tableOffset: null, tableHeight: null, stickyVisible: false, createSticky: function createSticky() { this.$html = $('html'); var $stickyHeader = this.$originalHeader.clone(true); this.$stickyTable = $('