tanstack-shadcn-table
Version:
A powerful, feature-rich React table component built on top of TanStack Table v8 with shadcn/ui styling. Optimized bundle size with 55% reduction through peer dependencies.
2 lines (1 loc) • 1.21 kB
JavaScript
function t(t){return"string"!=typeof t?"":t.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,"").replace(/javascript:/gi,"").replace(/\s*on\w+\s*=\s*["'][^"']*["']/gi,"").replace(/data:(?!image\/(png|jpe?g|gif|svg\+xml))[^;]*;/gi,"").replace(/style\s*=\s*["'][^"']*expression\s*\([^"']*["']/gi,"")}function e(t){return"string"!=typeof t?"":t.replace(/['";\\]/g,"").replace(/<[^>]*>/g,"").slice(0,1e3).trim()}function r(t,r){if(null==t)return t;switch(r){case"text":case"custom":return"string"==typeof t?e(t):"";case"select":case"multi-select":return Array.isArray(t)?t.map(t=>"string"==typeof t?e(t):""):"string"==typeof t?e(t):"";case"range":if(Array.isArray(t))return t.map(t=>{const e=+t;return isNaN(e)?null:Math.max(-1e6,Math.min(1e6,e))});const r=+t;return isNaN(r)?null:Math.max(-1e6,Math.min(1e6,r));case"boolean":return"boolean"==typeof t?t:!!t;case"date":case"date-range":if(Array.isArray(t))return t.map(t=>{const e=new Date(t);return isNaN(e.getTime())?null:e.toISOString().split("T")[0]});const n=new Date(t);return isNaN(n.getTime())?null:n.toISOString().split("T")[0];default:return"string"==typeof t?e(t):t}}export{r as sanitizeFilterValue,t as sanitizeHtml,e as sanitizeSearchInput};