UNPKG

tabulator-tables

Version:

Interactive table generation JavaScript library

62 lines (48 loc) 1.39 kB
import Tabulator from '../Tabulator.js'; class TableRegistry { static register(table){ TableRegistry.tables.push(table); } static deregister(table){ var index = TableRegistry.tables.indexOf(table); if(index > -1){ TableRegistry.tables.splice(index, 1); } } static lookupTable(query, silent){ var results = [], matches, match; if(typeof query === "string"){ matches = document.querySelectorAll(query); if(matches.length){ for(var i = 0; i < matches.length; i++){ match = TableRegistry.matchElement(matches[i]); if(match){ results.push(match); } } } }else if((typeof HTMLElement !== "undefined" && query instanceof HTMLElement) || query instanceof Tabulator){ match = TableRegistry.matchElement(query); if(match){ results.push(match); } }else if(Array.isArray(query)){ query.forEach(function(item){ results = results.concat(TableRegistry.lookupTable(item)); }); }else{ if(!silent){ console.warn("Table Connection Error - Invalid Selector", query); } } return results; } static matchElement(element){ return TableRegistry.tables.find(function(table){ return element instanceof Tabulator ? table === element : table.element === element; }); } } TableRegistry.tables = []; export default TableRegistry;