neiki-table 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ /* neiki-table 1.0.0 | MIT */
2
+ :host{--ntbl-radius:14px;--ntbl-radius-inner:10px;--ntbl-radius-control:9px;--ntbl-font-size:14px;--ntbl-transition:140ms ease;--ntbl-shadow:0 1px 2px rgba(16,24,40,0.04),0 6px 20px rgba(16,24,40,0.08);--ntbl-row-height:44px;--ntbl-cell-py:9px;--ntbl-cell-px:13px;--ntbl-head-py:10px;--ntbl-bg:#ffffff;--ntbl-color:#1f2328;--ntbl-muted:#6b7280;--ntbl-border:rgba(16,24,40,0.09);--ntbl-border-strong:rgba(16,24,40,0.14);--ntbl-header-bg:#f7f8fa;--ntbl-row-hover:#f3f6fc;--ntbl-row-selected:#e9f0ff;--ntbl-stripe:rgba(16,24,40,0.018);--ntbl-accent:#2563eb;--ntbl-accent-hover:#1d4ed8;--ntbl-accent-color:#ffffff;--ntbl-accent-soft:rgba(37,99,235,0.10);--ntbl-focus-ring:rgba(37,99,235,0.45);--ntbl-input-bg:#ffffff;--ntbl-input-border:rgba(16,24,40,0.16);--ntbl-badge-true-bg:#dcfce7;--ntbl-badge-true-color:#166534;--ntbl-badge-false-bg:#f3f4f6;--ntbl-badge-false-color:#6b7280;--ntbl-skeleton:linear-gradient(90deg,rgba(16,24,40,0.05) 25%,rgba(16,24,40,0.11) 37%,rgba(16,24,40,0.05) 63%);display:block;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:var(--ntbl-font-size);color:var(--ntbl-color);line-height:1.45;-webkit-text-size-adjust:100%}:host([hidden]){display:none !important}:host([resolved-theme="dark"]){--ntbl-shadow:0 1px 2px rgba(0,0,0,0.30),0 8px 26px rgba(0,0,0,0.40);--ntbl-bg:#1a1d23;--ntbl-color:#eef0f3;--ntbl-muted:#9aa3af;--ntbl-border:rgba(255,255,255,0.09);--ntbl-border-strong:rgba(255,255,255,0.16);--ntbl-header-bg:#21252c;--ntbl-row-hover:#262b33;--ntbl-row-selected:#22314f;--ntbl-stripe:rgba(255,255,255,0.02);--ntbl-accent:#3b82f6;--ntbl-accent-hover:#60a5fa;--ntbl-accent-soft:rgba(59,130,246,0.16);--ntbl-focus-ring:rgba(96,165,250,0.55);--ntbl-input-bg:#21252c;--ntbl-input-border:rgba(255,255,255,0.16);--ntbl-badge-true-bg:rgba(34,197,94,0.18);--ntbl-badge-true-color:#4ade80;--ntbl-badge-false-bg:rgba(255,255,255,0.08);--ntbl-badge-false-color:#9aa3af;--ntbl-skeleton:linear-gradient(90deg,rgba(255,255,255,0.04) 25%,rgba(255,255,255,0.09) 37%,rgba(255,255,255,0.04) 63%)}:host([density="compact"]){--ntbl-cell-py:5px;--ntbl-cell-px:10px;--ntbl-head-py:7px;--ntbl-font-size:13px}:host([density="spacious"]){--ntbl-cell-py:14px;--ntbl-cell-px:16px;--ntbl-head-py:14px}*{box-sizing:border-box}.ntbl-root{position:relative;display:flex;flex-direction:column;gap:12px;background:var(--ntbl-bg);border:1px solid var(--ntbl-border);border-radius:var(--ntbl-radius);box-shadow:var(--ntbl-shadow);padding:14px}.ntbl-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.ntbl-search-wrap{position:relative;flex:1 1 240px;min-width:160px;display:flex;align-items:center}.ntbl-search-wrap[hidden]{display:none}.ntbl-search-wrap::before{content:"";position:absolute;left:11px;width:16px;height:16px;pointer-events:none;opacity:0.5;background:currentColor;-webkit-mask:no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");mask:no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.ntbl-search{width:100%;padding:9px 12px 9px 34px;font:inherit;color:var(--ntbl-color);background:var(--ntbl-input-bg);border:1px solid var(--ntbl-input-border);border-radius:var(--ntbl-radius-control);outline:none;transition:border-color var(--ntbl-transition),box-shadow var(--ntbl-transition)}.ntbl-search::placeholder{color:var(--ntbl-muted)}.ntbl-search:hover{border-color:var(--ntbl-border-strong)}.ntbl-search:focus-visible{border-color:var(--ntbl-accent);box-shadow:0 0 0 3px var(--ntbl-focus-ring)}.ntbl-toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ntbl-selected-count{font-size:0.85em;font-weight:600;color:var(--ntbl-accent);background:var(--ntbl-accent-soft);padding:4px 10px;border-radius:999px}.ntbl-selected-count[hidden]{display:none}.ntbl-btn,.ntbl-toolbar-actions button,.ntbl-pagination button{font:inherit;display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border:1px solid var(--ntbl-input-border);border-radius:var(--ntbl-radius-control);background:var(--ntbl-input-bg);color:var(--ntbl-color);cursor:pointer;white-space:nowrap;transition:background var(--ntbl-transition),border-color var(--ntbl-transition),color var(--ntbl-transition),opacity var(--ntbl-transition),transform var(--ntbl-transition)}.ntbl-toolbar-actions button[hidden]{display:none}.ntbl-toolbar-actions button:hover,.ntbl-pagination button:not(:disabled):hover{background:var(--ntbl-row-hover);border-color:var(--ntbl-border-strong)}.ntbl-toolbar-actions button:active,.ntbl-pagination button:not(:disabled):active{transform:translateY(1px)}.ntbl-export-csv{color:var(--ntbl-accent);border-color:color-mix(in srgb,var(--ntbl-accent) 40%,transparent)}.ntbl-export-csv:hover{background:var(--ntbl-accent-soft) !important}.ntbl-toolbar-actions button:focus-visible,.ntbl-pagination button:focus-visible,.ntbl-page-size:focus-visible{outline:none;border-color:var(--ntbl-accent);box-shadow:0 0 0 3px var(--ntbl-focus-ring)}.ntbl-pagination button:disabled{opacity:0.4;cursor:not-allowed}.ntbl-icon{width:15px;height:15px;flex:none}.ntbl-scroll{position:relative;overflow-x:auto;border:1px solid var(--ntbl-border);border-radius:var(--ntbl-radius-inner)}.ntbl-table{width:100%;border-collapse:collapse;min-width:480px}.ntbl-thead{position:sticky;top:0;z-index:2}.ntbl-th{position:relative;background:var(--ntbl-header-bg);color:var(--ntbl-color);text-align:left;padding:var(--ntbl-head-py) var(--ntbl-cell-px);font-weight:600;font-size:0.9em;letter-spacing:0.01em;border-bottom:1px solid var(--ntbl-border-strong);white-space:nowrap;user-select:none}.ntbl-th-label{display:inline-flex;align-items:center;vertical-align:middle}.ntbl-th-align-center{text-align:center}.ntbl-th-align-right{text-align:right}.ntbl-th-sortable{cursor:pointer}.ntbl-th-sortable:hover{background:var(--ntbl-row-hover);color:var(--ntbl-accent)}.ntbl-th-sortable:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--ntbl-accent)}.ntbl-sort-icon{display:inline-block;width:0.85em;height:0.85em;margin-left:5px;vertical-align:middle;opacity:0.3;background:currentColor;-webkit-mask:no-repeat center / contain var(--ntbl-sort-mask,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 9l4-4 4 4M8 15l4 4 4-4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"));mask:no-repeat center / contain var(--ntbl-sort-mask,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 9l4-4 4 4M8 15l4 4 4-4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"))}.ntbl-th-sorted-asc,.ntbl-th-sorted-desc{color:var(--ntbl-accent)}.ntbl-th-sorted-asc .ntbl-sort-icon,.ntbl-th-sorted-desc .ntbl-sort-icon{opacity:1}.ntbl-th-sorted-asc .ntbl-sort-icon{--ntbl-sort-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 14l6-6 6 6' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.ntbl-th-sorted-desc .ntbl-sort-icon{--ntbl-sort-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 10l6 6 6-6' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.ntbl-resize-handle{position:absolute;top:0;right:0;width:9px;height:100%;cursor:col-resize;z-index:3;touch-action:none}.ntbl-resize-handle::after{content:"";position:absolute;top:20%;right:3px;width:2px;height:60%;background:var(--ntbl-border-strong);opacity:0;border-radius:2px;transition:opacity var(--ntbl-transition)}.ntbl-resize-handle:hover::after,.ntbl-th-resizing .ntbl-resize-handle::after{opacity:1;background:var(--ntbl-accent)}.ntbl-th-select{width:44px;padding-left:12px;padding-right:8px}.ntbl-filter-row{background:var(--ntbl-bg)}.ntbl-filter-row[hidden]{display:none}.ntbl-filter-cell{padding:6px 10px;font-weight:normal;background:var(--ntbl-bg);border-bottom:1px solid var(--ntbl-border)}.ntbl-filter-input{width:100%;min-width:80px;font:inherit;font-size:0.9em;padding:6px 9px;color:var(--ntbl-color);background:var(--ntbl-input-bg);border:1px solid var(--ntbl-input-border);border-radius:var(--ntbl-radius-control);transition:border-color var(--ntbl-transition),box-shadow var(--ntbl-transition)}.ntbl-filter-input:hover{border-color:var(--ntbl-border-strong)}.ntbl-filter-input:focus-visible{outline:none;border-color:var(--ntbl-accent);box-shadow:0 0 0 3px var(--ntbl-focus-ring)}.ntbl-tbody .ntbl-tr{transition:background var(--ntbl-transition)}.ntbl-tbody .ntbl-tr:nth-child(even){background:var(--ntbl-stripe)}.ntbl-tbody .ntbl-tr:hover{background:var(--ntbl-row-hover)}.ntbl-tbody .ntbl-tr-selected,.ntbl-tbody .ntbl-tr-selected:hover{background:var(--ntbl-row-selected)}.ntbl-tbody .ntbl-tr-selected .ntbl-td-select{box-shadow:inset 3px 0 0 var(--ntbl-accent)}.ntbl-td{padding:var(--ntbl-cell-py) var(--ntbl-cell-px);border-bottom:1px solid var(--ntbl-border);vertical-align:middle}.ntbl-td-align-center{text-align:center}.ntbl-td-align-right{text-align:right;font-variant-numeric:tabular-nums}.ntbl-td-num{font-variant-numeric:tabular-nums}.ntbl-tbody .ntbl-tr:last-child .ntbl-td{border-bottom:none}.ntbl-td-select{width:44px;padding-left:12px;padding-right:8px}.ntbl-td-select input,.ntbl-th-select input{width:16px;height:16px;accent-color:var(--ntbl-accent);cursor:pointer}.ntbl-td-editable{cursor:text;border-radius:6px;transition:box-shadow var(--ntbl-transition)}.ntbl-td-editable:hover{box-shadow:inset 0 0 0 1px var(--ntbl-border-strong)}.ntbl-td-editable:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--ntbl-accent)}.ntbl-td-editing{padding:4px 6px}.ntbl-edit-input{width:100%;font:inherit;padding:6px 9px;color:var(--ntbl-color);background:var(--ntbl-input-bg);border:1px solid var(--ntbl-accent);border-radius:var(--ntbl-radius-control);box-shadow:0 0 0 3px var(--ntbl-focus-ring);outline:none}.ntbl-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:999px;font-size:0.82em;font-weight:600;line-height:1.6}.ntbl-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.ntbl-badge-true{background:var(--ntbl-badge-true-bg);color:var(--ntbl-badge-true-color)}.ntbl-badge-false{background:var(--ntbl-badge-false-bg);color:var(--ntbl-badge-false-color)}.ntbl-td-editable .ntbl-badge{cursor:pointer}.ntbl-empty{padding:44px 16px;text-align:center;color:var(--ntbl-muted)}.ntbl-empty[hidden]{display:none}.ntbl-loading-overlay{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ntbl-bg) 62%,transparent);backdrop-filter:blur(1px);border-radius:var(--ntbl-radius-inner);z-index:4}:host([loading]) .ntbl-loading-overlay{display:flex}:host([loading]) .ntbl-scroll{min-height:160px}.ntbl-spinner{width:26px;height:26px;border-radius:50%;border:3px solid var(--ntbl-border-strong);border-top-color:var(--ntbl-accent);animation:ntbl-spin 0.7s linear infinite}@keyframes ntbl-spin{to{transform:rotate(360deg)}}.ntbl-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:0.88em;color:var(--ntbl-muted)}.ntbl-info{font-variant-numeric:tabular-nums}.ntbl-pagination{display:flex;align-items:center;gap:6px}.ntbl-pagination[hidden]{display:none}.ntbl-pagination button{padding:7px 10px;min-width:36px;justify-content:center}.ntbl-page-numbers{display:flex;align-items:center;gap:4px}.ntbl-page-btn{font-variant-numeric:tabular-nums}.ntbl-page-btn.ntbl-page-current{background:var(--ntbl-accent);border-color:var(--ntbl-accent);color:var(--ntbl-accent-color);cursor:default}.ntbl-page-btn.ntbl-page-current:hover{background:var(--ntbl-accent) !important}.ntbl-page-ellipsis{padding:0 2px;color:var(--ntbl-muted);user-select:none}.ntbl-page-size{font:inherit;font-size:0.9em;padding:7px 8px;color:var(--ntbl-color);background:var(--ntbl-input-bg);border:1px solid var(--ntbl-input-border);border-radius:var(--ntbl-radius-control);cursor:pointer}.ntbl-page-indicator{min-width:84px;text-align:center;font-variant-numeric:tabular-nums}.ntbl-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media (prefers-reduced-motion:reduce){.ntbl-search,.ntbl-tbody .ntbl-tr,.ntbl-toolbar-actions button,.ntbl-pagination button,.ntbl-filter-input,.ntbl-td-editable,.ntbl-resize-handle::after{transition:none !important}.ntbl-spinner{animation-duration:1.4s}}@media (max-width:640px){.ntbl-root{padding:10px}.ntbl-footer{flex-direction:column;align-items:stretch}.ntbl-pagination{justify-content:center;flex-wrap:wrap}}
@@ -0,0 +1,8 @@
1
+ /* neiki-table 1.0.0 | MIT */
2
+ /*!
3
+ * Neiki's Table 1.0.0
4
+ * A lightweight, dependency-free data table Web Component.
5
+ * https://github.com/neikiri/neiki-table
6
+ * MIT License
7
+ */
8
+ !function(){"use strict";if(!customElements.get("neiki-table")){var t={en:{searchPlaceholder:"Search…",filterPlaceholder:"Filter…",noResults:"No matching rows found.",noData:"No data available.",selectAll:"Select all rows",selectRow:"Select row",actions:"Actions",edit:"Edit",save:"Save",cancel:"Cancel",clearFilters:"Clear filters",exportCsv:"Export CSV",exportJson:"Export JSON",rowsPerPage:"Rows per page",previous:"Previous",next:"Next",pageOf:"Page {page} of {pages}",showingRange:"Showing {start}–{end} of {total}",showingNone:"No rows to show",all:"All",yes:"Yes",no:"No",selectedCount:"{count} selected",copy:"Copy",copied:"Copied",loading:"Loading…",firstPage:"First page",lastPage:"Last page",gotoPage:"Go to page {page}",resultsAnnounce:"{total} rows"},cs:{searchPlaceholder:"Hledat…",filterPlaceholder:"Filtrovat…",noResults:"Nebyly nalezeny žádné odpovídající řádky.",noData:"Žádná data k dispozici.",selectAll:"Vybrat všechny řádky",selectRow:"Vybrat řádek",actions:"Akce",edit:"Upravit",save:"Uložit",cancel:"Zrušit",clearFilters:"Vymazat filtry",exportCsv:"Export CSV",exportJson:"Export JSON",rowsPerPage:"Řádků na stránku",previous:"Předchozí",next:"Další",pageOf:"Stránka {page} z {pages}",showingRange:"Zobrazeno {start}–{end} z {total}",showingNone:"Žádné řádky k zobrazení",all:"Vše",yes:"Ano",no:"Ne",selectedCount:"Vybráno: {count}",copy:"Kopírovat",copied:"Zkopírováno",loading:"Načítání…",firstPage:"První stránka",lastPage:"Poslední stránka",gotoPage:"Přejít na stránku {page}",resultsAnnounce:"Řádků: {total}"},de:{searchPlaceholder:"Suchen…",filterPlaceholder:"Filtern…",noResults:"Keine passenden Zeilen gefunden.",noData:"Keine Daten verfügbar.",selectAll:"Alle Zeilen auswählen",selectRow:"Zeile auswählen",actions:"Aktionen",edit:"Bearbeiten",save:"Speichern",cancel:"Abbrechen",clearFilters:"Filter zurücksetzen",exportCsv:"CSV exportieren",exportJson:"JSON exportieren",rowsPerPage:"Zeilen pro Seite",previous:"Zurück",next:"Weiter",pageOf:"Seite {page} von {pages}",showingRange:"{start}–{end} von {total} angezeigt",showingNone:"Keine Zeilen vorhanden",all:"Alle",yes:"Ja",no:"Nein",selectedCount:"{count} ausgewählt",copy:"Kopieren",copied:"Kopiert",loading:"Wird geladen…",firstPage:"Erste Seite",lastPage:"Letzte Seite",gotoPage:"Zu Seite {page}",resultsAnnounce:"{total} Zeilen"},es:{searchPlaceholder:"Buscar…",filterPlaceholder:"Filtrar…",noResults:"No se encontraron filas coincidentes.",noData:"No hay datos disponibles.",selectAll:"Seleccionar todas las filas",selectRow:"Seleccionar fila",actions:"Acciones",edit:"Editar",save:"Guardar",cancel:"Cancelar",clearFilters:"Borrar filtros",exportCsv:"Exportar CSV",exportJson:"Exportar JSON",rowsPerPage:"Filas por página",previous:"Anterior",next:"Siguiente",pageOf:"Página {page} de {pages}",showingRange:"Mostrando {start}–{end} de {total}",showingNone:"No hay filas que mostrar",all:"Todos",yes:"Sí",no:"No",selectedCount:"{count} seleccionadas",copy:"Copiar",copied:"Copiado",loading:"Cargando…",firstPage:"Primera página",lastPage:"Última página",gotoPage:"Ir a la página {page}",resultsAnnounce:"{total} filas"},fr:{searchPlaceholder:"Rechercher…",filterPlaceholder:"Filtrer…",noResults:"Aucune ligne correspondante trouvée.",noData:"Aucune donnée disponible.",selectAll:"Sélectionner toutes les lignes",selectRow:"Sélectionner la ligne",actions:"Actions",edit:"Modifier",save:"Enregistrer",cancel:"Annuler",clearFilters:"Effacer les filtres",exportCsv:"Exporter en CSV",exportJson:"Exporter en JSON",rowsPerPage:"Lignes par page",previous:"Précédent",next:"Suivant",pageOf:"Page {page} sur {pages}",showingRange:"Affichage de {start}–{end} sur {total}",showingNone:"Aucune ligne à afficher",all:"Tous",yes:"Oui",no:"Non",selectedCount:"{count} sélectionnée(s)",copy:"Copier",copied:"Copié",loading:"Chargement…",firstPage:"Première page",lastPage:"Dernière page",gotoPage:"Aller à la page {page}",resultsAnnounce:"{total} lignes"},it:{searchPlaceholder:"Cerca…",filterPlaceholder:"Filtra…",noResults:"Nessuna riga corrispondente trovata.",noData:"Nessun dato disponibile.",selectAll:"Seleziona tutte le righe",selectRow:"Seleziona riga",actions:"Azioni",edit:"Modifica",save:"Salva",cancel:"Annulla",clearFilters:"Cancella filtri",exportCsv:"Esporta CSV",exportJson:"Esporta JSON",rowsPerPage:"Righe per pagina",previous:"Precedente",next:"Successivo",pageOf:"Pagina {page} di {pages}",showingRange:"Visualizzazione di {start}–{end} su {total}",showingNone:"Nessuna riga da mostrare",all:"Tutti",yes:"Sì",no:"No",selectedCount:"{count} selezionate",copy:"Copia",copied:"Copiato",loading:"Caricamento…",firstPage:"Prima pagina",lastPage:"Ultima pagina",gotoPage:"Vai alla pagina {page}",resultsAnnounce:"{total} righe"},pl:{searchPlaceholder:"Szukaj…",filterPlaceholder:"Filtruj…",noResults:"Nie znaleziono pasujących wierszy.",noData:"Brak dostępnych danych.",selectAll:"Zaznacz wszystkie wiersze",selectRow:"Zaznacz wiersz",actions:"Akcje",edit:"Edytuj",save:"Zapisz",cancel:"Anuluj",clearFilters:"Wyczyść filtry",exportCsv:"Eksportuj CSV",exportJson:"Eksportuj JSON",rowsPerPage:"Wierszy na stronę",previous:"Poprzednia",next:"Następna",pageOf:"Strona {page} z {pages}",showingRange:"Wyświetlanie {start}–{end} z {total}",showingNone:"Brak wierszy do wyświetlenia",all:"Wszystkie",yes:"Tak",no:"Nie",selectedCount:"Zaznaczono: {count}",copy:"Kopiuj",copied:"Skopiowano",loading:"Ładowanie…",firstPage:"Pierwsza strona",lastPage:"Ostatnia strona",gotoPage:"Przejdź do strony {page}",resultsAnnounce:"Wierszy: {total}"},sk:{searchPlaceholder:"Hľadať…",filterPlaceholder:"Filtrovať…",noResults:"Neboli nájdené žiadne zodpovedajúce riadky.",noData:"Nie sú k dispozícii žiadne dáta.",selectAll:"Vybrať všetky riadky",selectRow:"Vybrať riadok",actions:"Akcie",edit:"Upraviť",save:"Uložiť",cancel:"Zrušiť",clearFilters:"Vymazať filtre",exportCsv:"Exportovať CSV",exportJson:"Exportovať JSON",rowsPerPage:"Riadkov na stránku",previous:"Predchádzajúca",next:"Ďalšia",pageOf:"Stránka {page} z {pages}",showingRange:"Zobrazené {start}–{end} z {total}",showingNone:"Žiadne riadky na zobrazenie",all:"Všetky",yes:"Áno",no:"Nie",selectedCount:"Vybraté: {count}",copy:"Kopírovať",copied:"Skopírované",loading:"Načítava sa…",firstPage:"Prvá stránka",lastPage:"Posledná stránka",gotoPage:"Prejsť na stránku {page}",resultsAnnounce:"Riadkov: {total}"}},e=["light","dark","auto"],n=["text","number","boolean","date","select"],i=["compact","normal","spacious"],r=["left","center","right"],o=[10,25,50,100],a={locale:"en",theme:"auto",density:"normal",rowKey:"id",searchable:!0,filterable:!0,selectable:!0,editable:!0,paginated:!0,exportable:!0,resizable:!0,pageSize:10,searchDebounce:180},s=":host{--ntbl-radius:14px;--ntbl-radius-inner:10px;--ntbl-radius-control:9px;--ntbl-font-size:14px;--ntbl-transition:140ms ease;--ntbl-shadow:0 1px 2px rgba(16,24,40,0.04),0 6px 20px rgba(16,24,40,0.08);--ntbl-row-height:44px;--ntbl-cell-py:9px;--ntbl-cell-px:13px;--ntbl-head-py:10px;--ntbl-bg:#ffffff;--ntbl-color:#1f2328;--ntbl-muted:#6b7280;--ntbl-border:rgba(16,24,40,0.09);--ntbl-border-strong:rgba(16,24,40,0.14);--ntbl-header-bg:#f7f8fa;--ntbl-row-hover:#f3f6fc;--ntbl-row-selected:#e9f0ff;--ntbl-stripe:rgba(16,24,40,0.018);--ntbl-accent:#2563eb;--ntbl-accent-hover:#1d4ed8;--ntbl-accent-color:#ffffff;--ntbl-accent-soft:rgba(37,99,235,0.10);--ntbl-focus-ring:rgba(37,99,235,0.45);--ntbl-input-bg:#ffffff;--ntbl-input-border:rgba(16,24,40,0.16);--ntbl-badge-true-bg:#dcfce7;--ntbl-badge-true-color:#166534;--ntbl-badge-false-bg:#f3f4f6;--ntbl-badge-false-color:#6b7280;--ntbl-skeleton:linear-gradient(90deg,rgba(16,24,40,0.05) 25%,rgba(16,24,40,0.11) 37%,rgba(16,24,40,0.05) 63%);display:block;font-family:system-ui,-apple-system,\"Segoe UI\",Roboto,sans-serif;font-size:var(--ntbl-font-size);color:var(--ntbl-color);line-height:1.45;-webkit-text-size-adjust:100%}:host([hidden]){display:none !important}:host([resolved-theme=\"dark\"]){--ntbl-shadow:0 1px 2px rgba(0,0,0,0.30),0 8px 26px rgba(0,0,0,0.40);--ntbl-bg:#1a1d23;--ntbl-color:#eef0f3;--ntbl-muted:#9aa3af;--ntbl-border:rgba(255,255,255,0.09);--ntbl-border-strong:rgba(255,255,255,0.16);--ntbl-header-bg:#21252c;--ntbl-row-hover:#262b33;--ntbl-row-selected:#22314f;--ntbl-stripe:rgba(255,255,255,0.02);--ntbl-accent:#3b82f6;--ntbl-accent-hover:#60a5fa;--ntbl-accent-soft:rgba(59,130,246,0.16);--ntbl-focus-ring:rgba(96,165,250,0.55);--ntbl-input-bg:#21252c;--ntbl-input-border:rgba(255,255,255,0.16);--ntbl-badge-true-bg:rgba(34,197,94,0.18);--ntbl-badge-true-color:#4ade80;--ntbl-badge-false-bg:rgba(255,255,255,0.08);--ntbl-badge-false-color:#9aa3af;--ntbl-skeleton:linear-gradient(90deg,rgba(255,255,255,0.04) 25%,rgba(255,255,255,0.09) 37%,rgba(255,255,255,0.04) 63%)}:host([density=\"compact\"]){--ntbl-cell-py:5px;--ntbl-cell-px:10px;--ntbl-head-py:7px;--ntbl-font-size:13px}:host([density=\"spacious\"]){--ntbl-cell-py:14px;--ntbl-cell-px:16px;--ntbl-head-py:14px}*{box-sizing:border-box}.ntbl-root{position:relative;display:flex;flex-direction:column;gap:12px;background:var(--ntbl-bg);border:1px solid var(--ntbl-border);border-radius:var(--ntbl-radius);box-shadow:var(--ntbl-shadow);padding:14px}.ntbl-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.ntbl-search-wrap{position:relative;flex:1 1 240px;min-width:160px;display:flex;align-items:center}.ntbl-search-wrap[hidden]{display:none}.ntbl-search-wrap::before{content:\"\";position:absolute;left:11px;width:16px;height:16px;pointer-events:none;opacity:0.5;background:currentColor;-webkit-mask:no-repeat center / contain url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E\");mask:no-repeat center / contain url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E\")}.ntbl-search{width:100%;padding:9px 12px 9px 34px;font:inherit;color:var(--ntbl-color);background:var(--ntbl-input-bg);border:1px solid var(--ntbl-input-border);border-radius:var(--ntbl-radius-control);outline:none;transition:border-color var(--ntbl-transition),box-shadow var(--ntbl-transition)}.ntbl-search::placeholder{color:var(--ntbl-muted)}.ntbl-search:hover{border-color:var(--ntbl-border-strong)}.ntbl-search:focus-visible{border-color:var(--ntbl-accent);box-shadow:0 0 0 3px var(--ntbl-focus-ring)}.ntbl-toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ntbl-selected-count{font-size:0.85em;font-weight:600;color:var(--ntbl-accent);background:var(--ntbl-accent-soft);padding:4px 10px;border-radius:999px}.ntbl-selected-count[hidden]{display:none}.ntbl-btn,.ntbl-toolbar-actions button,.ntbl-pagination button{font:inherit;display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border:1px solid var(--ntbl-input-border);border-radius:var(--ntbl-radius-control);background:var(--ntbl-input-bg);color:var(--ntbl-color);cursor:pointer;white-space:nowrap;transition:background var(--ntbl-transition),border-color var(--ntbl-transition),color var(--ntbl-transition),opacity var(--ntbl-transition),transform var(--ntbl-transition)}.ntbl-toolbar-actions button[hidden]{display:none}.ntbl-toolbar-actions button:hover,.ntbl-pagination button:not(:disabled):hover{background:var(--ntbl-row-hover);border-color:var(--ntbl-border-strong)}.ntbl-toolbar-actions button:active,.ntbl-pagination button:not(:disabled):active{transform:translateY(1px)}.ntbl-export-csv{color:var(--ntbl-accent);border-color:color-mix(in srgb,var(--ntbl-accent) 40%,transparent)}.ntbl-export-csv:hover{background:var(--ntbl-accent-soft) !important}.ntbl-toolbar-actions button:focus-visible,.ntbl-pagination button:focus-visible,.ntbl-page-size:focus-visible{outline:none;border-color:var(--ntbl-accent);box-shadow:0 0 0 3px var(--ntbl-focus-ring)}.ntbl-pagination button:disabled{opacity:0.4;cursor:not-allowed}.ntbl-icon{width:15px;height:15px;flex:none}.ntbl-scroll{position:relative;overflow-x:auto;border:1px solid var(--ntbl-border);border-radius:var(--ntbl-radius-inner)}.ntbl-table{width:100%;border-collapse:collapse;min-width:480px}.ntbl-thead{position:sticky;top:0;z-index:2}.ntbl-th{position:relative;background:var(--ntbl-header-bg);color:var(--ntbl-color);text-align:left;padding:var(--ntbl-head-py) var(--ntbl-cell-px);font-weight:600;font-size:0.9em;letter-spacing:0.01em;border-bottom:1px solid var(--ntbl-border-strong);white-space:nowrap;user-select:none}.ntbl-th-label{display:inline-flex;align-items:center;vertical-align:middle}.ntbl-th-align-center{text-align:center}.ntbl-th-align-right{text-align:right}.ntbl-th-sortable{cursor:pointer}.ntbl-th-sortable:hover{background:var(--ntbl-row-hover);color:var(--ntbl-accent)}.ntbl-th-sortable:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--ntbl-accent)}.ntbl-sort-icon{display:inline-block;width:0.85em;height:0.85em;margin-left:5px;vertical-align:middle;opacity:0.3;background:currentColor;-webkit-mask:no-repeat center / contain var(--ntbl-sort-mask,url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 9l4-4 4 4M8 15l4 4 4-4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\"));mask:no-repeat center / contain var(--ntbl-sort-mask,url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 9l4-4 4 4M8 15l4 4 4-4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\"))}.ntbl-th-sorted-asc,.ntbl-th-sorted-desc{color:var(--ntbl-accent)}.ntbl-th-sorted-asc .ntbl-sort-icon,.ntbl-th-sorted-desc .ntbl-sort-icon{opacity:1}.ntbl-th-sorted-asc .ntbl-sort-icon{--ntbl-sort-mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 14l6-6 6 6' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\")}.ntbl-th-sorted-desc .ntbl-sort-icon{--ntbl-sort-mask:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 10l6 6 6-6' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\")}.ntbl-resize-handle{position:absolute;top:0;right:0;width:9px;height:100%;cursor:col-resize;z-index:3;touch-action:none}.ntbl-resize-handle::after{content:\"\";position:absolute;top:20%;right:3px;width:2px;height:60%;background:var(--ntbl-border-strong);opacity:0;border-radius:2px;transition:opacity var(--ntbl-transition)}.ntbl-resize-handle:hover::after,.ntbl-th-resizing .ntbl-resize-handle::after{opacity:1;background:var(--ntbl-accent)}.ntbl-th-select{width:44px;padding-left:12px;padding-right:8px}.ntbl-filter-row{background:var(--ntbl-bg)}.ntbl-filter-row[hidden]{display:none}.ntbl-filter-cell{padding:6px 10px;font-weight:normal;background:var(--ntbl-bg);border-bottom:1px solid var(--ntbl-border)}.ntbl-filter-input{width:100%;min-width:80px;font:inherit;font-size:0.9em;padding:6px 9px;color:var(--ntbl-color);background:var(--ntbl-input-bg);border:1px solid var(--ntbl-input-border);border-radius:var(--ntbl-radius-control);transition:border-color var(--ntbl-transition),box-shadow var(--ntbl-transition)}.ntbl-filter-input:hover{border-color:var(--ntbl-border-strong)}.ntbl-filter-input:focus-visible{outline:none;border-color:var(--ntbl-accent);box-shadow:0 0 0 3px var(--ntbl-focus-ring)}.ntbl-tbody .ntbl-tr{transition:background var(--ntbl-transition)}.ntbl-tbody .ntbl-tr:nth-child(even){background:var(--ntbl-stripe)}.ntbl-tbody .ntbl-tr:hover{background:var(--ntbl-row-hover)}.ntbl-tbody .ntbl-tr-selected,.ntbl-tbody .ntbl-tr-selected:hover{background:var(--ntbl-row-selected)}.ntbl-tbody .ntbl-tr-selected .ntbl-td-select{box-shadow:inset 3px 0 0 var(--ntbl-accent)}.ntbl-td{padding:var(--ntbl-cell-py) var(--ntbl-cell-px);border-bottom:1px solid var(--ntbl-border);vertical-align:middle}.ntbl-td-align-center{text-align:center}.ntbl-td-align-right{text-align:right;font-variant-numeric:tabular-nums}.ntbl-td-num{font-variant-numeric:tabular-nums}.ntbl-tbody .ntbl-tr:last-child .ntbl-td{border-bottom:none}.ntbl-td-select{width:44px;padding-left:12px;padding-right:8px}.ntbl-td-select input,.ntbl-th-select input{width:16px;height:16px;accent-color:var(--ntbl-accent);cursor:pointer}.ntbl-td-editable{cursor:text;border-radius:6px;transition:box-shadow var(--ntbl-transition)}.ntbl-td-editable:hover{box-shadow:inset 0 0 0 1px var(--ntbl-border-strong)}.ntbl-td-editable:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--ntbl-accent)}.ntbl-td-editing{padding:4px 6px}.ntbl-edit-input{width:100%;font:inherit;padding:6px 9px;color:var(--ntbl-color);background:var(--ntbl-input-bg);border:1px solid var(--ntbl-accent);border-radius:var(--ntbl-radius-control);box-shadow:0 0 0 3px var(--ntbl-focus-ring);outline:none}.ntbl-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:999px;font-size:0.82em;font-weight:600;line-height:1.6}.ntbl-badge::before{content:\"\";width:6px;height:6px;border-radius:50%;background:currentColor}.ntbl-badge-true{background:var(--ntbl-badge-true-bg);color:var(--ntbl-badge-true-color)}.ntbl-badge-false{background:var(--ntbl-badge-false-bg);color:var(--ntbl-badge-false-color)}.ntbl-td-editable .ntbl-badge{cursor:pointer}.ntbl-empty{padding:44px 16px;text-align:center;color:var(--ntbl-muted)}.ntbl-empty[hidden]{display:none}.ntbl-loading-overlay{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ntbl-bg) 62%,transparent);backdrop-filter:blur(1px);border-radius:var(--ntbl-radius-inner);z-index:4}:host([loading]) .ntbl-loading-overlay{display:flex}:host([loading]) .ntbl-scroll{min-height:160px}.ntbl-spinner{width:26px;height:26px;border-radius:50%;border:3px solid var(--ntbl-border-strong);border-top-color:var(--ntbl-accent);animation:ntbl-spin 0.7s linear infinite}@keyframes ntbl-spin{to{transform:rotate(360deg)}}.ntbl-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:0.88em;color:var(--ntbl-muted)}.ntbl-info{font-variant-numeric:tabular-nums}.ntbl-pagination{display:flex;align-items:center;gap:6px}.ntbl-pagination[hidden]{display:none}.ntbl-pagination button{padding:7px 10px;min-width:36px;justify-content:center}.ntbl-page-numbers{display:flex;align-items:center;gap:4px}.ntbl-page-btn{font-variant-numeric:tabular-nums}.ntbl-page-btn.ntbl-page-current{background:var(--ntbl-accent);border-color:var(--ntbl-accent);color:var(--ntbl-accent-color);cursor:default}.ntbl-page-btn.ntbl-page-current:hover{background:var(--ntbl-accent) !important}.ntbl-page-ellipsis{padding:0 2px;color:var(--ntbl-muted);user-select:none}.ntbl-page-size{font:inherit;font-size:0.9em;padding:7px 8px;color:var(--ntbl-color);background:var(--ntbl-input-bg);border:1px solid var(--ntbl-input-border);border-radius:var(--ntbl-radius-control);cursor:pointer}.ntbl-page-indicator{min-width:84px;text-align:center;font-variant-numeric:tabular-nums}.ntbl-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media (prefers-reduced-motion:reduce){.ntbl-search,.ntbl-tbody .ntbl-tr,.ntbl-toolbar-actions button,.ntbl-pagination button,.ntbl-filter-input,.ntbl-td-editable,.ntbl-resize-handle::after{transition:none !important}.ntbl-spinner{animation-duration:1.4s}}@media (max-width:640px){.ntbl-root{padding:10px}.ntbl-footer{flex-direction:column;align-items:stretch}.ntbl-pagination{justify-content:center;flex-wrap:wrap}}",l=null,c=!1,d=document.createElement("template");d.innerHTML='<div class="ntbl-root" part="root"><div class="ntbl-toolbar" part="toolbar"><div class="ntbl-search-wrap"><input type="search" class="ntbl-search" part="search"></div><div class="ntbl-toolbar-actions"><span class="ntbl-selected-count" part="selected-count" hidden></span><button type="button" class="ntbl-clear-filters" part="button"></button><button type="button" class="ntbl-copy" part="button"></button><button type="button" class="ntbl-export-csv" part="button"></button><button type="button" class="ntbl-export-json" part="button"></button></div></div><div class="ntbl-scroll" part="scroll"><table class="ntbl-table" part="table"><colgroup class="ntbl-colgroup"></colgroup><thead class="ntbl-thead" part="thead"><tr class="ntbl-header-row"></tr><tr class="ntbl-filter-row"></tr></thead><tbody class="ntbl-tbody" part="tbody"></tbody></table><div class="ntbl-empty" part="empty" hidden></div><div class="ntbl-loading-overlay" part="loading" aria-hidden="true"><span class="ntbl-spinner"></span></div></div><div class="ntbl-footer" part="footer"><div class="ntbl-info" part="info"></div><div class="ntbl-pagination" part="pagination"><label class="ntbl-page-size-label"><select class="ntbl-page-size" part="page-size"></select></label><button type="button" class="ntbl-first" part="button">&laquo;</button><button type="button" class="ntbl-prev" part="button">&lsaquo;</button><span class="ntbl-page-numbers" part="page-numbers"></span><span class="ntbl-page-indicator" part="page-indicator"></span><button type="button" class="ntbl-next" part="button">&rsaquo;</button><button type="button" class="ntbl-last" part="button">&raquo;</button></div></div><div class="ntbl-sr-only" role="status" aria-live="polite"></div></div>';class _ extends HTMLElement{constructor(){super(),this._init()}}_.observedAttributes=["locale","theme","density","row-key","searchable","filterable","selectable","editable","paginated","exportable","resizable","loading","search-debounce","page-size","columns","data"],_.prototype._init=function(){this._ready=!1,this._reflecting=!1,this._mediaQuery=null,this._i18n=Object.assign({},t),this._config=Object.assign({},a),this._columns=[],this._rows=[],this._state={search:"",filters:{},sort:{key:null,dir:null},page:1,selected:{},editing:null,columnWidths:{}},this._searchTimer=null,this._copyResetTimer=null,this._resize=null,this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(d.content.cloneNode(!0)),this._injectStyles(),this._root=this.shadowRoot.querySelector(".ntbl-root"),this._searchInput=this.shadowRoot.querySelector(".ntbl-search"),this._selectedCountEl=this.shadowRoot.querySelector(".ntbl-selected-count"),this._clearFiltersBtn=this.shadowRoot.querySelector(".ntbl-clear-filters"),this._copyBtn=this.shadowRoot.querySelector(".ntbl-copy"),this._exportCsvBtn=this.shadowRoot.querySelector(".ntbl-export-csv"),this._exportJsonBtn=this.shadowRoot.querySelector(".ntbl-export-json"),this._colgroup=this.shadowRoot.querySelector(".ntbl-colgroup"),this._headerRow=this.shadowRoot.querySelector(".ntbl-header-row"),this._filterRow=this.shadowRoot.querySelector(".ntbl-filter-row"),this._tbody=this.shadowRoot.querySelector(".ntbl-tbody"),this._emptyEl=this.shadowRoot.querySelector(".ntbl-empty"),this._infoEl=this.shadowRoot.querySelector(".ntbl-info"),this._liveRegion=this.shadowRoot.querySelector(".ntbl-sr-only"),this._pageSizeSelect=this.shadowRoot.querySelector(".ntbl-page-size"),this._firstBtn=this.shadowRoot.querySelector(".ntbl-first"),this._prevBtn=this.shadowRoot.querySelector(".ntbl-prev"),this._nextBtn=this.shadowRoot.querySelector(".ntbl-next"),this._lastBtn=this.shadowRoot.querySelector(".ntbl-last"),this._pageNumbers=this.shadowRoot.querySelector(".ntbl-page-numbers"),this._pageIndicator=this.shadowRoot.querySelector(".ntbl-page-indicator"),this._onMediaChange=this._onMediaChange.bind(this),this._onResizeMove=this._onResizeMove.bind(this),this._onResizeEnd=this._onResizeEnd.bind(this);var e=this;this._searchInput.addEventListener("input",function(){var t=e._searchInput.value,n=function(){e._searchTimer=null,e._state.search=t,e._state.page=1,e._render(),e._emit("search",{query:e._state.search})};e._searchTimer&&clearTimeout(e._searchTimer);var i=e._config.searchDebounce;i>0?e._searchTimer=setTimeout(n,i):n()}),this._clearFiltersBtn.addEventListener("click",function(){e._searchTimer&&(clearTimeout(e._searchTimer),e._searchTimer=null),e._state.filters={},e._state.search="",e._state.page=1,e._searchInput.value="",e._render(),e._emit("filter",{filters:{}})}),this._copyBtn.addEventListener("click",function(){e.copyCSV()}),this._exportCsvBtn.addEventListener("click",function(){e.exportCSV()}),this._exportJsonBtn.addEventListener("click",function(){e.exportJSON()}),this._pageSizeSelect.addEventListener("change",function(){e.setPageSize(parseInt(e._pageSizeSelect.value,10))}),this._firstBtn.addEventListener("click",function(){e.goToPage(1)}),this._prevBtn.addEventListener("click",function(){e.goToPage(e._state.page-1)}),this._nextBtn.addEventListener("click",function(){e.goToPage(e._state.page+1)}),this._lastBtn.addEventListener("click",function(){e.goToPage(e._lastPageCount||1)})},_.prototype._injectStyles=function(){if(s){var t=function(t){if(l||c)return l;if("undefined"==typeof CSSStyleSheet||!("adoptedStyleSheets"in Document.prototype))return c=!0,null;try{(l=new CSSStyleSheet).replaceSync(t)}catch(t){l=null,c=!0}return l}(s);if(t)return void(this.shadowRoot.adoptedStyleSheets=[t]);var e=document.createElement("style");return e.textContent=s,void this.shadowRoot.insertBefore(e,this.shadowRoot.firstChild)}var n=document.createElement("link");n.rel="stylesheet",n.href=this._resolveStylesheetUrl(),this.shadowRoot.insertBefore(n,this.shadowRoot.firstChild)},_.prototype._resolveStylesheetUrl=function(){var t=document.currentScript;if(!t)for(var e=document.querySelectorAll("script[src]"),n=e.length-1;n>=0;n--)if(/neiki-table(\.min)?\.js/.test(e[n].src)){t=e[n];break}var i=t?t.src:"";return/\.min\.js(\?.*)?$/.test(i)?i.replace(/\.min\.js(\?.*)?$/,".min.css$1"):/\.js(\?.*)?$/.test(i)?i.replace(/\.js(\?.*)?$/,".css$1"):"neiki-table.css"},_.prototype.connectedCallback=function(){this._readAttributesIntoConfig(),this._render(),this._ready||(this._ready=!0,this._emit("ready",{config:this.getConfig()}))},_.prototype.disconnectedCallback=function(){this._mediaQuery&&(this._mediaQuery.removeEventListener("change",this._onMediaChange),this._mediaQuery=null),this._searchTimer&&(clearTimeout(this._searchTimer),this._searchTimer=null),this._copyResetTimer&&(clearTimeout(this._copyResetTimer),this._copyResetTimer=null),this._endResize()},_.prototype.attributeChangedCallback=function(t,e,n){if(!this._reflecting&&e!==n)if("columns"!==t){if("data"!==t)this._readAttributesIntoConfig(),this.isConnected&&this._render();else if(n)try{this.setData(JSON.parse(n))}catch(t){this._emit("error",{reason:"invalid-data-json"})}}else if(n)try{this.setColumns(JSON.parse(n))}catch(t){this._emit("error",{reason:"invalid-columns-json"})}},_.prototype._readAttributesIntoConfig=function(){var t=this._config;t.locale=this.getAttribute("locale")||t.locale||a.locale,t.theme=p(this.getAttribute("theme"),e,t.theme||a.theme),t.density=p(this.getAttribute("density"),i,t.density||a.density),t.rowKey=this.getAttribute("row-key")||t.rowKey||a.rowKey,t.searchable=h(this.getAttribute("searchable"),t.searchable),t.filterable=h(this.getAttribute("filterable"),t.filterable),t.selectable=h(this.getAttribute("selectable"),t.selectable),t.editable=h(this.getAttribute("editable"),t.editable),t.paginated=h(this.getAttribute("paginated"),t.paginated),t.exportable=h(this.getAttribute("exportable"),t.exportable),t.resizable=h(this.getAttribute("resizable"),t.resizable),t.loading=this.hasAttribute("loading")&&"false"!==this.getAttribute("loading");var n=parseInt(this.getAttribute("search-debounce"),10);!isNaN(n)&&n>=0&&(t.searchDebounce=n);var r=parseInt(this.getAttribute("page-size"),10);!isNaN(r)&&r>0&&(t.pageSize=r)},_.prototype._reflectAttributes=function(){this._reflecting=!0;var t=this._config;this.setAttribute("locale",t.locale),this.setAttribute("theme",t.theme),this.setAttribute("density",t.density),t.loading?this.setAttribute("loading",""):this.removeAttribute("loading"),this._reflecting=!1},_.prototype._resolveTheme=function(){return"auto"!==this._config.theme?this._config.theme:(this._mediaQuery||(this._mediaQuery=window.matchMedia("(prefers-color-scheme: dark)"),this._mediaQuery.addEventListener("change",this._onMediaChange)),this._mediaQuery.matches?"dark":"light")},_.prototype._onMediaChange=function(){"auto"===this._config.theme&&this._render()},_.prototype._t=function(t,e){return function(t,e,n,i){var r=e[t]||e.en||{},o=e.en||{},a=void 0!==r[n]?r[n]:void 0!==o[n]?o[n]:n;return i&&Object.keys(i).forEach(function(t){a=a.replace("{"+t+"}",String(i[t]))}),a}(this._config.locale,this._i18n,t,e)},_.prototype._filterableColumns=function(){return this._columns.filter(function(t){return!1!==t.filterable})},_.prototype._cellText=function(t,e){var n=b(t,e.key);if("function"==typeof e.format)try{var i=e.format(n,t);return null==i?"":String(i)}catch(t){}return u(n,e,this._config.locale)},_.prototype._computeView=function(){var t=this,e=this._config,n=this._state,i=this._rows.slice();if(e.searchable&&n.search){var r=n.search.toLowerCase();i=i.filter(function(e){return t._columns.some(function(n){return-1!==t._cellText(e,n).toLowerCase().indexOf(r)})})}if(e.filterable&&Object.keys(n.filters).forEach(function(e){var r=n.filters[e];if(null!=r&&""!==r){var o=t._columns.filter(function(t){return t.key===e})[0];o&&(i=i.filter(function(n){var i=b(n,e);return"boolean"===o.type?String(!!i)===r:"select"===o.type?String(i)===r:-1!==t._cellText(n,o).toLowerCase().indexOf(String(r).toLowerCase())}))}}),n.sort.key){var o=this._columns.filter(function(t){return t.key===n.sort.key})[0],a=o?o.type:"text",s="desc"===n.sort.dir?-1:1;i.sort(function(t,e){return s*function(t,e,n){var i=t,r=e;return null==i&&(i=""),null==r&&(r=""),"number"===n?(Number(i)||0)-(Number(r)||0):"boolean"===n?(i?1:0)-(r?1:0):"date"===n?new Date(i).getTime()-new Date(r).getTime():String(i).localeCompare(String(r))}(b(t,n.sort.key),b(e,n.sort.key),a)})}return i},_.prototype._rowKeyValue=function(t,e){var n=this._config.rowKey;return t&&void 0!==t[n]?t[n]:"__index_"+e},_.prototype._captureFocus=function(){var t=this.shadowRoot.activeElement;return t?t===this._searchInput?{type:"search",start:t.selectionStart,end:t.selectionEnd}:t.classList&&t.classList.contains("ntbl-filter-input")?{type:"filter",key:t.dataset.key,start:t.selectionStart,end:t.selectionEnd}:null:null},_.prototype._restoreFocus=function(t){if(t){var e=null;if("search"===t.type?e=this._searchInput:"filter"===t.type&&(e=this._filterRow.querySelector('.ntbl-filter-input[data-key="'+t.key+'"]')),e&&(e.focus(),"number"==typeof t.start&&"function"==typeof e.setSelectionRange))try{e.setSelectionRange(t.start,t.end)}catch(t){}}},_.prototype._render=function(){var t=this._captureFocus();this._reflectAttributes(),this.setAttribute("resolved-theme",this._resolveTheme()),this._searchInput.placeholder=this._t("searchPlaceholder"),document.activeElement!==this&&this.shadowRoot.activeElement!==this._searchInput&&(this._searchInput.value=this._state.search),this._searchInput.parentElement.hidden=!this._config.searchable,this._clearFiltersBtn.textContent=this._t("clearFilters"),this._copyResetTimer||(this._copyBtn.textContent=this._t("copy")),this._exportCsvBtn.textContent=this._t("exportCsv"),this._exportJsonBtn.textContent=this._t("exportJson"),this._clearFiltersBtn.hidden=!(this._config.filterable||this._config.searchable),this._copyBtn.hidden=!this._config.exportable,this._exportCsvBtn.hidden=!this._config.exportable,this._exportJsonBtn.hidden=!this._config.exportable;var e=Object.keys(this._state.selected).filter(function(t){return this[t]},this._state.selected);this._config.selectable&&e.length>0?(this._selectedCountEl.hidden=!1,this._selectedCountEl.textContent=this._t("selectedCount",{count:e.length})):this._selectedCountEl.hidden=!0;var n=this._computeView(),i=n.length,r=this._config.paginated?this._config.pageSize:i||1,o=Math.max(1,Math.ceil(i/r));this._state.page>o&&(this._state.page=o),this._state.page<1&&(this._state.page=1),this._lastPageCount=o;var a=this._config.paginated?(this._state.page-1)*r:0,s=this._config.paginated?n.slice(a,a+r):n;this._renderColgroup(),this._renderHeader(),this._renderFilterRow(),this._renderBody(s,n,a),this._renderFooter(i,o,a,s.length),this._announce(i),this._restoreFocus(t)},_.prototype._announce=function(t){if(this._liveRegion){var e=this._t("resultsAnnounce",{total:t});this._liveRegion.textContent!==e&&(this._liveRegion.textContent=e)}},_.prototype._renderColgroup=function(){var t=this;if(this._colgroup.textContent="",this._config.selectable){var e=document.createElement("col");e.style.width="44px",this._colgroup.appendChild(e)}this._columns.forEach(function(e){var n=document.createElement("col"),i=t._state.columnWidths[e.key]||e.width;i&&(n.style.width="number"==typeof i?i+"px":i),t._colgroup.appendChild(n)})},_.prototype._renderHeader=function(){var t=this,e=this._config;if(this._headerRow.textContent="",e.selectable){var n=document.createElement("th");n.className="ntbl-th ntbl-th-select",n.setAttribute("part","th");var i=document.createElement("input");i.type="checkbox",i.className="ntbl-select-all",i.setAttribute("aria-label",this._t("selectAll"));var o=this._computeView(),a=o.length>0&&o.every(function(e,n){return t._state.selected[t._rowKeyValue(e,n)]});i.checked=a,i.addEventListener("change",function(){t.selectAll(i.checked)}),n.appendChild(i),this._headerRow.appendChild(n)}this._columns.forEach(function(e,n){var i=document.createElement("th");i.className="ntbl-th",i.setAttribute("part","th");var o=p(e.align,r,"left");"left"!==o&&i.classList.add("ntbl-th-align-"+o);var a=document.createElement("span");if(a.className="ntbl-th-label",a.textContent=void 0!==e.label?e.label:e.key,i.appendChild(a),!1!==e.sortable){i.classList.add("ntbl-th-sortable"),t._state.sort.key===e.key&&(i.classList.add("ntbl-th-sorted-"+t._state.sort.dir),i.setAttribute("aria-sort","asc"===t._state.sort.dir?"ascending":"descending"));var s=document.createElement("span");s.className="ntbl-sort-icon",s.setAttribute("aria-hidden","true"),i.appendChild(s),i.setAttribute("tabindex","0"),i.setAttribute("role","button"),i.addEventListener("click",function(){t._toggleSort(e.key)}),i.addEventListener("keydown",function(n){"Enter"!==n.key&&" "!==n.key||(n.preventDefault(),t._toggleSort(e.key))})}if(t._config.resizable&&!1!==e.resizable){var l=document.createElement("span");l.className="ntbl-resize-handle",l.setAttribute("aria-hidden","true");var c=t._config.selectable?1:0;l.addEventListener("pointerdown",function(r){t._startResize(r,e.key,i,c+n)}),l.addEventListener("click",function(t){t.stopPropagation()}),i.appendChild(l)}t._headerRow.appendChild(i)})},_.prototype._startResize=function(t,e,n,i){t.preventDefault(),t.stopPropagation();var r=this._colgroup.children[i];this._resize={key:e,cell:n,colEl:r,startX:t.clientX,startWidth:n.getBoundingClientRect().width},n.classList.add("ntbl-th-resizing"),document.addEventListener("pointermove",this._onResizeMove),document.addEventListener("pointerup",this._onResizeEnd),document.addEventListener("pointercancel",this._onResizeEnd)},_.prototype._onResizeMove=function(t){if(this._resize){var e=t.clientX-this._resize.startX,n=Math.max(60,Math.round(this._resize.startWidth+e));this._resize.colEl&&(this._resize.colEl.style.width=n+"px"),this._resize.currentWidth=n}},_.prototype._onResizeEnd=function(){this._resize&&(this._resize.currentWidth&&(this._state.columnWidths[this._resize.key]=this._resize.currentWidth,this._emit("column-resize",{key:this._resize.key,width:this._resize.currentWidth})),this._endResize())},_.prototype._endResize=function(){this._resize&&this._resize.cell&&this._resize.cell.classList.remove("ntbl-th-resizing"),document.removeEventListener("pointermove",this._onResizeMove),document.removeEventListener("pointerup",this._onResizeEnd),document.removeEventListener("pointercancel",this._onResizeEnd),this._resize=null},_.prototype._toggleSort=function(t){var e=this._state;e.sort.key!==t?(e.sort.key=t,e.sort.dir="asc"):"asc"===e.sort.dir?e.sort.dir="desc":(e.sort.key=null,e.sort.dir=null),this._render(),this._emit("sort",{key:e.sort.key,dir:e.sort.dir})},_.prototype._renderFilterRow=function(){var t=this,e=this._config;if(this._filterRow.textContent="",this._filterRow.hidden=!e.filterable,e.filterable){if(e.selectable){var n=document.createElement("th");n.className="ntbl-th ntbl-th-select",this._filterRow.appendChild(n)}this._columns.forEach(function(e){var n=document.createElement("th");if(n.className="ntbl-th ntbl-filter-cell",!1!==e.filterable){var i=t._state.filters[e.key]||"";if("boolean"===e.type){var r=document.createElement("select");r.className="ntbl-filter-input",r.dataset.key=e.key,r.appendChild(new Option(t._t("all"),"")),r.appendChild(new Option(t._t("yes"),"true")),r.appendChild(new Option(t._t("no"),"false")),r.value=i,r.addEventListener("change",function(){t._setFilterInternal(e.key,r.value)}),n.appendChild(r)}else if("select"===e.type){var o=document.createElement("select");o.className="ntbl-filter-input",o.dataset.key=e.key,o.appendChild(new Option(t._t("all"),"")),g(e).forEach(function(t){o.appendChild(new Option(t.label,String(t.value)))}),o.value=i,o.addEventListener("change",function(){t._setFilterInternal(e.key,o.value)}),n.appendChild(o)}else{var a=document.createElement("input");a.type="text",a.className="ntbl-filter-input",a.dataset.key=e.key,a.placeholder=t._t("filterPlaceholder"),a.value=i,a.addEventListener("input",function(){t._setFilterInternal(e.key,a.value)}),n.appendChild(a)}t._filterRow.appendChild(n)}else t._filterRow.appendChild(n)})}},_.prototype._setFilterInternal=function(t,e){""===e?delete this._state.filters[t]:this._state.filters[t]=e,this._state.page=1,this._render(),this._emit("filter",{filters:Object.assign({},this._state.filters)})},_.prototype._renderBody=function(t,e,n){var i=this,o=this._config;this._tbody.textContent="";var a=this._rows.length>0,s=t.length>0;this._emptyEl.hidden=s,s||(this._emptyEl.textContent=a?this._t("noResults"):this._t("noData")),t.forEach(function(t,e){var a=n+e,s=i._rowKeyValue(t,a),l=document.createElement("tr");if(l.className="ntbl-tr",l.setAttribute("part","tr"),i._state.selected[s]&&l.classList.add("ntbl-tr-selected"),l.addEventListener("click",function(e){var n=e.target&&e.target.tagName;"INPUT"!==n&&"SELECT"!==n&&"OPTION"!==n&&i._emit("row-click",{rowKey:s,row:Object.assign({},t)})}),o.selectable){var c=document.createElement("td");c.className="ntbl-td ntbl-td-select";var d=document.createElement("input");d.type="checkbox",d.setAttribute("aria-label",i._t("selectRow")),d.checked=!!i._state.selected[s],d.addEventListener("change",function(){i.selectRow(s,d.checked)}),c.appendChild(d),l.appendChild(c)}i._columns.forEach(function(e){var n=document.createElement("td");n.className="ntbl-td",n.setAttribute("part","td");var o=p(e.align,r,"number"===e.type?"right":"left");"left"!==o?n.classList.add("ntbl-td-align-"+o):"number"===e.type&&n.classList.add("ntbl-td-num"),i._renderCell(n,t,e,s),l.appendChild(n)}),i._tbody.appendChild(l)})},_.prototype._renderCell=function(t,e,n,i){var r=this,o=b(e,n.key),a=this._config.editable&&!1!==n.editable;if(this._state.editing&&this._state.editing.rowKey===i&&this._state.editing.key===n.key)return t.classList.add("ntbl-td-editing"),void this._renderEditor(t,e,n,i,o);if("boolean"===n.type){var s=document.createElement("span");return s.className="ntbl-badge "+(o?"ntbl-badge-true":"ntbl-badge-false"),s.textContent=o?this._t("yes"):this._t("no"),t.appendChild(s),void(a&&(t.classList.add("ntbl-td-editable"),t.addEventListener("click",function(){r._commitEdit(i,n.key,!o)})))}t.textContent=this._cellText(e,n),a&&(t.classList.add("ntbl-td-editable"),t.setAttribute("tabindex","0"),t.addEventListener("dblclick",function(){r._startEdit(i,n.key)}),t.addEventListener("keydown",function(t){"Enter"===t.key&&r._startEdit(i,n.key)}))},_.prototype._startEdit=function(t,e){this._state.editing={rowKey:t,key:e},this._render()},_.prototype._renderEditor=function(t,e,n,i,r){var o,a=this;function s(){var t=o.value;"number"===n.type&&(t=""===t?null:Number(t)),a._commitEdit(i,n.key,t)}t.textContent="","select"===n.type?(o=document.createElement("select"),g(n).forEach(function(t){o.appendChild(new Option(t.label,String(t.value)))}),o.value=String(r)):"number"===n.type?((o=document.createElement("input")).type="number",o.value=null==r?"":r):"date"===n.type?((o=document.createElement("input")).type="date",o.value=r?String(r).slice(0,10):""):((o=document.createElement("input")).type="text",o.value=null==r?"":r),o.className="ntbl-edit-input",o.addEventListener("keydown",function(t){"Enter"===t.key?(t.preventDefault(),s()):"Escape"===t.key&&(t.preventDefault(),a._state.editing=null,a._render())}),o.addEventListener("blur",function(){s()}),t.appendChild(o),requestAnimationFrame(function(){o.focus(),o.select&&o.select()})},_.prototype._commitEdit=function(t,e,n){var i=this,r=this._rows.filter(function(e,n){return i._rowKeyValue(e,n)===t})[0];if(this._state.editing=null,r){var o=r[e];o!==n?(r[e]=n,this._render(),this._emit("cell-edit",{rowKey:t,key:e,oldValue:o,newValue:n,row:Object.assign({},r)})):this._render()}else this._render()},_.prototype._renderFooter=function(t,e,n,i){var r=this._config;if(this._infoEl.textContent=0===t?this._t("showingNone"):this._t("showingRange",{start:n+1,end:n+i,total:t}),this.shadowRoot.querySelector(".ntbl-pagination").hidden=!r.paginated,r.paginated){this._pageSizeSelect.textContent="";var a=this;o.forEach(function(t){var e=new Option(String(t)+" / "+a._t("rowsPerPage"),String(t));e.selected=t===r.pageSize,a._pageSizeSelect.appendChild(e)});var s=this._state.page;this._firstBtn.setAttribute("aria-label",this._t("firstPage")),this._prevBtn.setAttribute("aria-label",this._t("previous")),this._nextBtn.setAttribute("aria-label",this._t("next")),this._lastBtn.setAttribute("aria-label",this._t("lastPage")),this._firstBtn.disabled=s<=1,this._prevBtn.disabled=s<=1,this._nextBtn.disabled=s>=e,this._lastBtn.disabled=s>=e;var l=e>1&&e<=200;this._firstBtn.hidden=e<=2,this._lastBtn.hidden=e<=2,this._pageNumbers.textContent="",l?(this._pageIndicator.hidden=!0,this._renderPageNumbers(s,e)):(this._pageIndicator.hidden=!1,this._pageIndicator.textContent=this._t("pageOf",{page:s,pages:e}))}},_.prototype._buildPageList=function(t,e){for(var n=[],i=0,r=1;r<=e;r++)(1===r||r===e||r>=t-1&&r<=t+1)&&(i&&r-i>1&&n.push("…"),n.push(r),i=r);return n},_.prototype._renderPageNumbers=function(t,e){var n=this;this._buildPageList(t,e).forEach(function(e){if("…"===e){var i=document.createElement("span");return i.className="ntbl-page-ellipsis",i.textContent="…",void n._pageNumbers.appendChild(i)}var r=document.createElement("button");r.type="button",r.className="ntbl-page-btn",r.setAttribute("part","button"),r.textContent=String(e),r.setAttribute("aria-label",n._t("gotoPage",{page:e})),e===t?(r.classList.add("ntbl-page-current"),r.setAttribute("aria-current","page")):r.addEventListener("click",function(){n.goToPage(e)}),n._pageNumbers.appendChild(r)})},_.prototype._emit=function(t,e){this.dispatchEvent(new CustomEvent("neiki-table:"+t,{detail:e,bubbles:!0,composed:!0}))},_.prototype.setColumns=function(t){return this._columns=(t||[]).map(function(t){return Object.assign({type:"text",sortable:!0,filterable:!0,editable:!0},t,{type:p(t.type,n,"text")})}),this._state.columnWidths={},this.isConnected&&this._render(),this},_.prototype.getColumns=function(){return this._columns.map(function(t){return Object.assign({},t)})},_.prototype.setData=function(t){return this._rows=Array.isArray(t)?t.slice():[],this._state.selected={},this._state.page=1,this.isConnected&&this._render(),this},_.prototype.getData=function(){return this._rows.map(function(t){return Object.assign({},t)})},_.prototype.setLocale=function(t){return this._config.locale=t,this.isConnected&&this._render(),this},_.prototype.getLocale=function(){return this._config.locale},_.prototype.addTranslations=function(t,e){return this._i18n[t]=Object.assign({},this._i18n[t]||{},e||{}),this.isConnected&&this._render(),this},_.prototype.setConfig=function(t){t=t||{};var n=this._config;return void 0!==t.locale&&(n.locale=t.locale),void 0!==t.theme&&(n.theme=p(t.theme,e,n.theme)),void 0!==t.density&&(n.density=p(t.density,i,n.density)),void 0!==t.rowKey&&(n.rowKey=t.rowKey),void 0!==t.searchable&&(n.searchable=!!t.searchable),void 0!==t.filterable&&(n.filterable=!!t.filterable),void 0!==t.selectable&&(n.selectable=!!t.selectable),void 0!==t.editable&&(n.editable=!!t.editable),void 0!==t.paginated&&(n.paginated=!!t.paginated),void 0!==t.exportable&&(n.exportable=!!t.exportable),void 0!==t.resizable&&(n.resizable=!!t.resizable),void 0!==t.loading&&(n.loading=!!t.loading),void 0!==t.searchDebounce&&t.searchDebounce>=0&&(n.searchDebounce=t.searchDebounce),void 0!==t.pageSize&&(n.pageSize=t.pageSize),this.isConnected&&this._render(),this},_.prototype.getConfig=function(){return Object.assign({},this._config)},_.prototype.sortBy=function(t,e){return this._state.sort.key=t||null,this._state.sort.dir=t?p(e,["asc","desc"],"asc"):null,this.isConnected&&this._render(),this._emit("sort",{key:this._state.sort.key,dir:this._state.sort.dir}),this},_.prototype.search=function(t){return this._state.search=t||"",this._state.page=1,this.isConnected&&this._render(),this._emit("search",{query:this._state.search}),this},_.prototype.setFilter=function(t,e){return null==e||""===e?delete this._state.filters[t]:this._state.filters[t]=e,this._state.page=1,this.isConnected&&this._render(),this._emit("filter",{filters:Object.assign({},this._state.filters)}),this},_.prototype.clearFilters=function(){return this._state.filters={},this._state.search="",this._state.page=1,this.isConnected&&this._render(),this._emit("filter",{filters:{}}),this},_.prototype.goToPage=function(t){return this._state.page=Math.max(1,t),this.isConnected&&this._render(),this._emit("page-change",{page:this._state.page}),this},_.prototype.setPageSize=function(t){return this._config.pageSize=t,this._state.page=1,this.isConnected&&this._render(),this._emit("page-change",{page:this._state.page,pageSize:t}),this},_.prototype.selectRow=function(t,e){return e?this._state.selected[t]=!0:delete this._state.selected[t],this.isConnected&&this._render(),this._emit("select",{selected:this.getSelectedKeys()}),this},_.prototype.selectAll=function(t){var e=this,n=this._computeView();return t?n.forEach(function(t,n){e._state.selected[e._rowKeyValue(t,n)]=!0}):n.forEach(function(t,n){delete e._state.selected[e._rowKeyValue(t,n)]}),this.isConnected&&this._render(),this._emit("select",{selected:this.getSelectedKeys()}),this},_.prototype.clearSelection=function(){return this._state.selected={},this.isConnected&&this._render(),this._emit("select",{selected:[]}),this},_.prototype.getSelectedKeys=function(){var t=this._state.selected;return Object.keys(t).filter(function(e){return t[e]})},_.prototype.getSelectedRows=function(){var t=this,e=this.getSelectedKeys();return this._rows.filter(function(n,i){return-1!==e.indexOf(String(t._rowKeyValue(n,i)))}).map(function(t){return Object.assign({},t)})},_.prototype._exportRows=function(){return this.getSelectedKeys().length>0?this.getSelectedRows():this._computeView()},_.prototype._buildCSV=function(){var t=this,e=this._exportRows(),n=[this._columns.map(function(t){return t.label||t.key}).map(f).join(",")];return e.forEach(function(e){var i=t._columns.map(function(n){return f(t._cellText(e,n))}).join(",");n.push(i)}),{text:n.join("\r\n"),count:e.length}},_.prototype.exportCSV=function(t){var e=this._buildCSV();return v(e.text,"text/csv;charset=utf-8",t||"neiki-table-export.csv"),this._emit("export",{format:"csv",count:e.count}),this},_.prototype.copyCSV=function(){var t=this,e=this._buildCSV(),n=function(n){t._emit("copy",{format:"csv",count:e.count,ok:n}),n&&t._copyBtn&&(t._copyResetTimer&&clearTimeout(t._copyResetTimer),t._copyBtn.textContent=t._t("copied"),t._copyResetTimer=setTimeout(function(){t._copyResetTimer=null,t._copyBtn&&(t._copyBtn.textContent=t._t("copy"))},1600))};return navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(e.text).then(function(){n(!0)},function(){n(t._fallbackCopy(e.text))}):n(this._fallbackCopy(e.text)),this},_.prototype._fallbackCopy=function(t){try{var e=document.createElement("textarea");e.value=t,e.setAttribute("readonly",""),e.style.position="fixed",e.style.left="-9999px",document.body.appendChild(e),e.select();var n=document.execCommand("copy");return document.body.removeChild(e),n}catch(t){return!1}},_.prototype.setLoading=function(t){return this._config.loading=!!t,t?this.setAttribute("loading",""):this.removeAttribute("loading"),this.isConnected&&this._render(),this},_.prototype.setDensity=function(t){return this._config.density=p(t,i,this._config.density),this.isConnected&&this._render(),this},_.prototype.exportJSON=function(t){var e=this,n=this._exportRows(),i=n.map(function(t){var n={};return e._columns.forEach(function(e){n[e.key]=b(t,e.key)}),n});return v(JSON.stringify(i,null,2),"application/json;charset=utf-8",t||"neiki-table-export.json"),this._emit("export",{format:"json",count:n.length}),this},_.prototype.refresh=function(){return this.isConnected&&this._render(),this},customElements.define("neiki-table",_)}function p(t,e,n){return-1!==e.indexOf(t)?t:n}function h(t,e){return!0===t||!1===t?t:"true"===t||"false"!==t&&e}function b(t,e){return t?t[e]:void 0}function u(t,e,n){if(null==t||""===t)return"";switch(e.type){case"number":var i=Number(t);return isNaN(i)?String(t):i.toLocaleString(n);case"boolean":return t?"yes":"no";case"date":var r=new Date(t);return isNaN(r.getTime())?String(t):r.toLocaleDateString(n);case"select":var o=function(t,e){for(var n=g(t),i=0;i<n.length;i++)if(String(n[i].value)===String(e))return n[i];return null}(e,t);return o?o.label:String(t);default:return String(t)}}function g(t){return(t.options||[]).map(function(t){return t&&"object"==typeof t?{value:t.value,label:void 0!==t.label?t.label:String(t.value)}:{value:t,label:String(t)}})}function f(t){var e=null==t?"":String(t);return/^[=+\-@\t\r]/.test(e)&&(e="'"+e),/[",\n\r]/.test(e)&&(e='"'+e.replace(/"/g,'""')+'"'),e}function v(t,e,n){var i=new Blob([t],{type:e}),r=URL.createObjectURL(i),o=document.createElement("a");o.href=r,o.download=n,o.style.display="none",document.body.appendChild(o),o.click(),document.body.removeChild(o),setTimeout(function(){URL.revokeObjectURL(r)},1e3)}}();
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "neiki-table",
3
+ "version": "1.0.0",
4
+ "description": "Lightweight, dependency-free CDN-ready data table Web Component with sorting, search, filters, pagination, inline editing, row selection, column resizing, density modes, custom cell formatting, CSV/JSON export/clipboard and i18n support",
5
+ "keywords": [
6
+ "table",
7
+ "data-table",
8
+ "datagrid",
9
+ "web-components",
10
+ "custom-elements",
11
+ "vanilla-js",
12
+ "i18n",
13
+ "csv-export"
14
+ ],
15
+ "scripts": {
16
+ "test": "node --check src/neiki-table.js",
17
+ "build": "python3 minify.py"
18
+ },
19
+ "main": "dist/neiki-table.min.js",
20
+ "exports": {
21
+ ".": "./dist/neiki-table.min.js",
22
+ "./style": "./dist/neiki-table.min.css"
23
+ },
24
+ "files": [
25
+ "dist"
26
+ ],
27
+ "style": "dist/neiki-table.min.css",
28
+ "repository": {
29
+ "type": "git",
30
+ "url": "git+https://github.com/neikiri/neiki-table.git"
31
+ },
32
+ "bugs": {
33
+ "url": "https://github.com/neikiri/neiki-table/issues"
34
+ },
35
+ "unpkg": "dist/neiki-table.min.js",
36
+ "jsdelivr": "dist/neiki-table.min.js",
37
+ "homepage": "https://github.com/neikiri/neiki-table#readme",
38
+ "author": "Jindřich Stoklasa <jindrichstoklasa1@gmail.com>",
39
+ "license": "MIT"
40
+ }