react-pivottable-plus 1.0.12 → 1.0.14
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.
- package/dist/PivotTableUI.js +6 -3
- package/dist/PivotTableUI.js.map +1 -1
- package/dist/TableRenderers.js +38 -4
- package/dist/TableRenderers.js.map +1 -1
- package/dist/renderers/RadixUI.js +1 -1
- package/dist/renderers/RadixUI.js.map +1 -1
- package/dist/renderers/ShadcnDashboardUI.js +1 -1
- package/dist/renderers/ShadcnDashboardUI.js.map +1 -1
- package/dist/renderers/TailwindUI.js +1 -1
- package/dist/renderers/TailwindUI.js.map +1 -1
- package/package.json +4 -4
- package/pivottable.css +55 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShadcnDashboardUI.js","names":["_react","_interopRequireWildcard","require","_usePivot2","_sortablejs","_interopRequireDefault","_PivotTable","_Utilities","_lucideReact","_clsx","_tailwindMerge","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","l","iterator","u","a","next","done","Array","isArray","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_arrayLikeToArray","toString","slice","constructor","name","from","test","cn","_len","inputs","_key","twMerge","clsx","DnDContainer","_ref","list","setList","className","children","el","useRef","setListRef","listRef","useEffect","current","sortable","_currentList","Sortable","create","group","ghostClass","animation","onEnd","evt","to","oldIndex","newIndex","item","itemId","getAttribute","remove","nextEl","insertBefore","appendChild","newOrder","splice","fromSortable","toSortable","_setList","sourceItems","id","targetItems","destroy","createElement","ref","style","listStyleType","padding","margin","minHeight","width","display","flexWrap","gap","React","Children","map","child","key","props","ShadcnDashboardUI","_usePivot","usePivot","pivotProps","pivotState","state","actions","_useState","useState","_useState2","openDropdown","setOpenDropdown","aggregatorName","rendererName","pivotData","PivotData","data","materializedInput","totalPivotRows","getRowKeys","totalRecords","totalPages","Math","ceil","pageSize","unusedList","attrValues","trim","rows","includes","cols","sort","sortAs","unusedOrder","colList","rowList","AttributeItem","_ref2","attr","values","valueFilter","_useState3","_useState4","filterText","setFilterText","filteredValues","v","toLowerCase","GripVertical","size","onClick","stopPropagation","currentTarget","closest","Filter","type","placeholder","onChange","target","setValuesInFilter","checked","toggleFilter","renderAttribute","updateProp","renderers","setUnusedOrder","aggregators","numInputs","vals","pagination","disabled","page","ChevronsLeft","ChevronLeft","min","max","val","parseInt","ChevronRight","ChevronsRight"],"sources":["../../src/renderers/ShadcnDashboardUI.jsx"],"sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport { usePivot } from '../hooks/usePivot';\nimport Sortable from 'sortablejs';\nimport PivotTable from '../PivotTable';\nimport { PivotData, sortAs } from '../Utilities';\nimport { GripVertical, Filter, ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from 'lucide-react';\nimport clsx from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nfunction cn(...inputs) {\n return twMerge(clsx(inputs));\n}\n\nconst DnDContainer = ({ list, setList, className, children }) => {\n const el = useRef(null);\n const setListRef = useRef(setList);\n const listRef = useRef(list);\n \n useEffect(() => {\n setListRef.current = setList;\n }, [setList]);\n\n useEffect(() => {\n listRef.current = list;\n if (el.current && el.current.sortable) {\n el.current.sortable._currentList = list;\n }\n }, [list]);\n\n useEffect(() => {\n const sortable = Sortable.create(el.current, {\n group: 'shared',\n ghostClass: 'opacity-50',\n animation: 150,\n onEnd: (evt) => {\n const { from, to, oldIndex, newIndex, item } = evt;\n const itemId = item.getAttribute('data-id');\n\n // ── REVERSIÓN SÍNCRONA DEL DOM ──\n // Muy importante: eliminamos el item de su posición actual (to)\n // y lo devolvemos a la original (from) para que React lo encuentre.\n if (from !== to || oldIndex !== newIndex) {\n item.remove();\n const nextEl = from.children[oldIndex];\n if (nextEl) {\n from.insertBefore(item, nextEl);\n } else {\n from.appendChild(item);\n }\n }\n\n if (from === to) {\n // ── Reordenamiento interno ──\n const newOrder = [...listRef.current];\n newOrder.splice(oldIndex, 1);\n newOrder.splice(newIndex, 0, itemId);\n \n if (setListRef.current) {\n setListRef.current(newOrder);\n }\n } else {\n // ── Movimiento entre listas ──\n const fromSortable = from.sortable;\n const toSortable = to.sortable;\n\n if (fromSortable?._setList && toSortable?._setList) {\n const sourceItems = fromSortable._currentList.filter(id => id !== itemId);\n const targetItems = [...toSortable._currentList];\n targetItems.splice(newIndex, 0, itemId);\n\n fromSortable._setList(sourceItems);\n toSortable._setList(targetItems);\n }\n }\n },\n });\n\n el.current.sortable = sortable;\n sortable._setList = (newOrder) => {\n if (setListRef.current) {\n setListRef.current(newOrder);\n }\n };\n sortable._currentList = listRef.current;\n\n return () => sortable.destroy();\n }, []);\n\n return (\n <div className={className}>\n <ul \n ref={el} \n style={{ \n listStyleType: 'none', \n padding: 0, \n margin: 0, \n minHeight: '1.5rem', \n width: '100%',\n display: 'flex',\n flexWrap: 'wrap',\n gap: '8px'\n }}\n >\n {React.Children.map(children, child => (\n <li key={child.key} data-id={child.props['data-id']}>\n {child}\n </li>\n ))}\n </ul>\n </div>\n );\n};\n\nexport function ShadcnDashboardUI(props) {\n const { props: pivotProps, state: pivotState, actions } = usePivot(props);\n const [openDropdown, setOpenDropdown] = useState(null);\n\n const aggregatorName = pivotProps.aggregatorName;\n const rendererName = pivotProps.rendererName;\n\n const pivotData = new PivotData({\n ...pivotProps,\n data: pivotState.materializedInput,\n });\n const totalPivotRows = pivotData.getRowKeys().length;\n const totalRecords = pivotState.materializedInput.length;\n const totalPages = Math.ceil(totalPivotRows / (pivotProps.pageSize || 20));\n\n const unusedList = Object.keys(pivotState.attrValues)\n .filter(e => e && e.trim() !== '' && !pivotProps.rows.includes(e) && !pivotProps.cols.includes(e))\n .sort(sortAs(pivotState.unusedOrder || []));\n\n const colList = pivotProps.cols.filter(e => e && e.trim() !== '');\n const rowList = pivotProps.rows.filter(e => e && e.trim() !== '');\n\n const AttributeItem = ({ attr, pivotState, pivotProps, actions, openDropdown, setOpenDropdown }) => {\n const values = Object.keys(pivotState.attrValues[attr] || {});\n const valueFilter = pivotProps.valueFilter[attr] || {};\n const [filterText, setFilterText] = useState('');\n \n const filteredValues = values.filter(v => \n v.toString().toLowerCase().includes(filterText.toLowerCase())\n ).sort();\n\n return (\n <div\n className=\"relative inline-flex items-center gap-2 bg-white border border-slate-200 rounded-xl px-3 py-1.5 text-[13px] font-semibold text-slate-700 shadow-sm cursor-grab hover:bg-slate-50 transition-colors group\"\n data-id={attr}\n >\n <GripVertical size={14} className=\"text-slate-300 group-hover:text-slate-400 transition-colors\" />\n <span>{attr}</span>\n <button\n onClick={(e) => {\n e.stopPropagation();\n // Si el elemento se está moviendo (clase de sortable activa), no abrir\n if (e.currentTarget.closest('.sortable-chosen')) return;\n setOpenDropdown(openDropdown === attr ? null : attr);\n }}\n className={cn(\n \"text-slate-400 hover:text-slate-600 focus:outline-none ml-1 flex items-center justify-center p-0.5 rounded-sm transition-colors\",\n Object.keys(valueFilter).length > 0 && \"text-blue-600\"\n )}\n >\n <Filter size={14} />\n </button>\n\n {openDropdown === attr && (\n <div \n className=\"absolute top-full left-0 mt-2 w-64 bg-white border border-slate-200 rounded-2xl shadow-2xl z-[1000] p-4 cursor-default\"\n onClick={e => e.stopPropagation()}\n >\n <div className=\"flex items-center justify-between mb-3\">\n <h4 className=\"text-[11px] font-black text-slate-400 uppercase tracking-widest\">Filtrar: {attr}</h4>\n <button onClick={() => setOpenDropdown(null)} className=\"text-slate-400 hover:text-slate-600 font-bold text-lg\">×</button>\n </div>\n\n <input\n type=\"text\"\n placeholder=\"Buscar valores...\"\n className=\"w-full px-3 py-2 text-xs border border-slate-200 rounded-lg mb-3 focus:outline-none focus:ring-2 focus:ring-blue-500/20\"\n value={filterText}\n onChange={e => setFilterText(e.target.value)}\n />\n\n <div className=\"flex gap-2 mb-3\">\n <button\n onClick={() => actions.setValuesInFilter(attr, [])}\n className=\"text-[10px] font-bold text-blue-600 hover:text-blue-700 uppercase\"\n >\n Seleccionar Todo\n </button>\n <button\n onClick={() => actions.setValuesInFilter(attr, values)}\n className=\"text-[10px] font-bold text-slate-400 hover:text-slate-500 uppercase\"\n >\n Limpiar\n </button>\n </div>\n\n <div className=\"max-h-48 overflow-y-auto custom-scrollbar space-y-1\">\n {filteredValues.map(v => (\n <label key={v} className=\"flex items-center gap-2 px-2 py-1.5 hover:bg-slate-50 rounded-lg cursor-pointer transition-colors\">\n <input\n type=\"checkbox\"\n checked={!(v in valueFilter)}\n onChange={() => actions.toggleFilter(attr, v)}\n className=\"w-3.5 h-3.5 rounded border-slate-300 text-blue-600 focus:ring-blue-500/20\"\n />\n <span className=\"text-xs text-slate-600 font-medium truncate\">\n {v === 'null' ? <em className=\"text-slate-400\">null</em> : v}\n </span>\n </label>\n ))}\n </div>\n </div>\n )}\n </div>\n );\n };\n\n const renderAttribute = (attr) => (\n <AttributeItem\n key={attr}\n attr={attr}\n data-id={attr}\n pivotState={pivotState}\n pivotProps={pivotProps}\n actions={actions}\n openDropdown={openDropdown}\n setOpenDropdown={setOpenDropdown}\n />\n );\n\n return (\n <div className=\"flex flex-col bg-white border border-slate-200 rounded-lg overflow-hidden font-sans text-slate-800 text-sm shadow-sm\">\n {/* Row 1: Renderer Dropdown & Unused Attributes */}\n <div className=\"flex w-full border-b border-slate-200 min-h-[4rem]\">\n {/* Renderer */}\n <div className=\"w-[300px] p-4 border-r border-slate-200 bg-white flex flex-col justify-start flex-shrink-0\">\n <select\n className=\"w-full text-xs font-medium border border-slate-300 rounded px-3 py-1.5 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none hover:border-slate-400 bg-white text-slate-700\"\n value={rendererName}\n onChange={(e) => actions.updateProp('rendererName', e.target.value)}\n >\n {Object.keys(pivotProps.renderers).map(r => <option key={r} value={r}>{r}</option>)}\n </select>\n </div>\n\n {/* Unused Attrs */}\n <div className=\"flex-1 p-4 bg-slate-50/80\">\n <DnDContainer\n list={unusedList}\n setList={(newOrder) => {\n actions.setUnusedOrder(newOrder);\n }}\n className=\"flex flex-wrap gap-2 w-full min-h-[1.5rem]\"\n >\n {unusedList.map(renderAttribute)}\n </DnDContainer>\n </div>\n </div>\n \n {/* Row 2: Aggregators & Column Attributes */}\n <div className=\"flex w-full border-b border-slate-200 min-h-[4rem]\">\n {/* Aggregators */}\n <div className=\"w-[300px] p-4 border-r border-slate-200 bg-slate-50/30 flex-shrink-0 flex items-start\">\n <div className=\"flex flex-col gap-2 w-full\">\n <div className=\"flex items-center gap-2\">\n <select\n className=\"flex-1 text-xs font-medium border border-slate-300 rounded px-3 py-1.5 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none hover:border-slate-400 bg-white text-slate-700\"\n value={aggregatorName}\n onChange={(e) => actions.updateProp('aggregatorName', e.target.value)}\n >\n {Object.keys(pivotProps.aggregators).map(r => <option key={r} value={r}>{r}</option>)}\n </select>\n \n <div className=\"flex items-center text-slate-600 gap-1.5 text-base leading-none\">\n <span className=\"cursor-pointer hover:text-slate-900 transition-colors\">↕</span>\n <span className=\"cursor-pointer hover:text-slate-900 transition-colors\">↔</span>\n </div>\n </div>\n \n {pivotProps.aggregators[pivotProps.aggregatorName]([])().numInputs > 0 && (\n <select\n className=\"w-full text-xs font-medium border border-slate-300 rounded px-3 py-1.5 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none hover:border-slate-400 bg-white text-slate-700\"\n value={pivotProps.vals[0] || ''}\n onChange={(e) => actions.updateProp('vals', [e.target.value])}\n >\n {Object.keys(pivotState.attrValues).map(r => <option key={r} value={r}>{r}</option>)}\n </select>\n )}\n </div>\n </div>\n \n {/* Col Attrs */}\n <div className=\"flex-1 p-4 bg-white\">\n <DnDContainer\n list={colList}\n setList={(newOrder) => {\n actions.updateProp('cols', newOrder);\n }}\n className=\"flex flex-wrap gap-2 w-full min-h-[1.5rem]\"\n >\n {colList.map(renderAttribute)}\n </DnDContainer>\n </div>\n </div>\n \n {/* Row 3: Row Attributes & Table Data */}\n <div className=\"flex w-full min-h-[400px]\">\n {/* Row Attrs */}\n <div className=\"w-[300px] p-4 border-r border-slate-200 bg-white flex-shrink-0\">\n <DnDContainer\n list={rowList}\n setList={(newOrder) => {\n actions.updateProp('rows', newOrder);\n }}\n className=\"flex flex-col gap-2 w-full min-h-[1.5rem]\"\n >\n {rowList.map(renderAttribute)}\n </DnDContainer>\n </div>\n {/* Table Output */}\n <div className=\"flex-1 w-full p-4 bg-slate-50/30 overflow-auto\">\n <PivotTable {...pivotProps} data={pivotState.materializedInput} />\n </div>\n </div>\n\n {/* Footer: Totals and Pagination */}\n {pivotProps.pagination && (\n <div className=\"flex items-center justify-between px-6 py-3 border-t border-slate-200 bg-white text-slate-600\">\n <div className=\"text-[13px] font-medium\">\n Registros: <span className=\"text-slate-900\">{totalRecords}</span> | Filas: <span className=\"text-slate-900\">{totalPivotRows}</span>\n </div>\n\n <div className=\"flex items-center gap-6\">\n <div className=\"flex items-center gap-1.5\">\n <button\n className=\"p-1 rounded-md hover:bg-slate-100 disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n disabled={pivotProps.page <= 1}\n onClick={() => actions.updateProp('page', 1)}\n >\n <ChevronsLeft size={18} />\n </button>\n <button\n className=\"p-1 rounded-md hover:bg-slate-100 disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n disabled={pivotProps.page <= 1}\n onClick={() => actions.updateProp('page', pivotProps.page - 1)}\n >\n <ChevronLeft size={18} />\n </button>\n\n <div className=\"flex items-center gap-2 mx-1\">\n <span className=\"text-[13px] font-medium\">Página</span>\n <input\n type=\"number\"\n className=\"w-12 h-8 text-center border border-slate-300 rounded-md text-[13px] font-semibold text-slate-900 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none\"\n value={pivotProps.page}\n min={1}\n max={totalPages}\n onChange={(e) => {\n const val = parseInt(e.target.value, 10);\n if (val > 0 && val <= totalPages) {\n actions.updateProp('page', val);\n }\n }}\n />\n <span className=\"text-[13px] font-medium text-slate-400\">de {totalPages}</span>\n </div>\n\n <button\n className=\"p-1 rounded-md hover:bg-slate-100 disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n disabled={pivotProps.page >= totalPages}\n onClick={() => actions.updateProp('page', pivotProps.page + 1)}\n >\n <ChevronRight size={18} />\n </button>\n <button\n className=\"p-1 rounded-md hover:bg-slate-100 disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n disabled={pivotProps.page >= totalPages}\n onClick={() => actions.updateProp('page', totalPages)}\n >\n <ChevronsRight size={18} />\n </button>\n </div>\n\n <div className=\"flex items-center gap-2 border-l border-slate-200 pl-6\">\n <span className=\"text-[13px] font-medium text-slate-400\">Mostrar</span>\n <select\n className=\"text-[13px] font-semibold border border-slate-300 rounded-md px-2 py-1 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none hover:border-slate-400 bg-white text-slate-900\"\n value={pivotProps.pageSize}\n onChange={(e) => {\n actions.updateProp('pageSize', parseInt(e.target.value, 10));\n actions.updateProp('page', 1);\n }}\n >\n {[10, 20, 50, 100].map(n => (\n <option key={n} value={n}>\n {n}\n </option>\n ))}\n </select>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ShadcnDashboardUI.js","names":["_react","_interopRequireWildcard","require","_usePivot2","_sortablejs","_interopRequireDefault","_PivotTable","_Utilities","_lucideReact","_clsx","_tailwindMerge","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","l","iterator","u","a","next","done","Array","isArray","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_arrayLikeToArray","toString","slice","constructor","name","from","test","cn","_len","inputs","_key","twMerge","clsx","DnDContainer","_ref","list","setList","className","children","el","useRef","setListRef","listRef","useEffect","current","sortable","_currentList","Sortable","create","group","ghostClass","animation","onEnd","evt","to","oldIndex","newIndex","item","itemId","getAttribute","remove","nextEl","insertBefore","appendChild","newOrder","splice","fromSortable","toSortable","_setList","sourceItems","id","targetItems","destroy","createElement","ref","style","listStyleType","padding","margin","minHeight","width","display","flexWrap","gap","React","Children","map","child","key","props","ShadcnDashboardUI","_usePivot","usePivot","pivotProps","pivotState","state","actions","_useState","useState","_useState2","openDropdown","setOpenDropdown","aggregatorName","rendererName","pivotData","PivotData","data","materializedInput","totalPivotRows","getRowKeys","totalRecords","totalPages","Math","ceil","pageSize","unusedList","attrValues","trim","rows","includes","cols","sort","sortAs","unusedOrder","colList","rowList","AttributeItem","_ref2","attr","values","valueFilter","_useState3","_useState4","filterText","setFilterText","filteredValues","v","toLowerCase","GripVertical","size","onClick","stopPropagation","currentTarget","closest","Filter","type","placeholder","onChange","target","setValuesInFilter","checked","toggleFilter","renderAttribute","updateProp","renderers","setUnusedOrder","aggregators","numInputs","vals","concat","pagination","disabled","page","ChevronsLeft","ChevronLeft","min","max","val","parseInt","ChevronRight","ChevronsRight"],"sources":["../../src/renderers/ShadcnDashboardUI.jsx"],"sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport { usePivot } from '../hooks/usePivot';\nimport Sortable from 'sortablejs';\nimport PivotTable from '../PivotTable';\nimport { PivotData, sortAs } from '../Utilities';\nimport { GripVertical, Filter, ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from 'lucide-react';\nimport clsx from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nfunction cn(...inputs) {\n return twMerge(clsx(inputs));\n}\n\nconst DnDContainer = ({ list, setList, className, children }) => {\n const el = useRef(null);\n const setListRef = useRef(setList);\n const listRef = useRef(list);\n\n useEffect(() => {\n setListRef.current = setList;\n }, [setList]);\n\n useEffect(() => {\n listRef.current = list;\n if (el.current && el.current.sortable) {\n el.current.sortable._currentList = list;\n }\n }, [list]);\n\n useEffect(() => {\n const sortable = Sortable.create(el.current, {\n group: 'shared',\n ghostClass: 'opacity-50',\n animation: 150,\n onEnd: (evt) => {\n const { from, to, oldIndex, newIndex, item } = evt;\n const itemId = item.getAttribute('data-id');\n\n // ── REVERSIÓN SÍNCRONA DEL DOM ──\n // Muy importante: eliminamos el item de su posición actual (to)\n // y lo devolvemos a la original (from) para que React lo encuentre.\n if (from !== to || oldIndex !== newIndex) {\n item.remove();\n const nextEl = from.children[oldIndex];\n if (nextEl) {\n from.insertBefore(item, nextEl);\n } else {\n from.appendChild(item);\n }\n }\n\n if (from === to) {\n // ── Reordenamiento interno ──\n const newOrder = [...listRef.current];\n newOrder.splice(oldIndex, 1);\n newOrder.splice(newIndex, 0, itemId);\n\n if (setListRef.current) {\n setListRef.current(newOrder);\n }\n } else {\n // ── Movimiento entre listas ──\n const fromSortable = from.sortable;\n const toSortable = to.sortable;\n\n if (fromSortable?._setList && toSortable?._setList) {\n const sourceItems = fromSortable._currentList.filter(id => id !== itemId);\n const targetItems = [...toSortable._currentList];\n targetItems.splice(newIndex, 0, itemId);\n\n fromSortable._setList(sourceItems);\n toSortable._setList(targetItems);\n }\n }\n },\n });\n\n el.current.sortable = sortable;\n sortable._setList = (newOrder) => {\n if (setListRef.current) {\n setListRef.current(newOrder);\n }\n };\n sortable._currentList = listRef.current;\n\n return () => sortable.destroy();\n }, []);\n\n return (\n <div className={className}>\n <ul\n ref={el}\n style={{\n listStyleType: 'none',\n padding: 0,\n margin: 0,\n minHeight: '1.5rem',\n width: '100%',\n display: 'flex',\n flexWrap: 'wrap',\n gap: '8px'\n }}\n >\n {React.Children.map(children, child => (\n <li key={child.key} data-id={child.props['data-id']}>\n {child}\n </li>\n ))}\n </ul>\n </div>\n );\n};\n\nexport function ShadcnDashboardUI(props) {\n const { props: pivotProps, state: pivotState, actions } = usePivot(props);\n const [openDropdown, setOpenDropdown] = useState(null);\n\n const aggregatorName = pivotProps.aggregatorName;\n const rendererName = pivotProps.rendererName;\n\n const pivotData = new PivotData({\n ...pivotProps,\n data: pivotState.materializedInput,\n });\n const totalPivotRows = pivotData.getRowKeys().length;\n const totalRecords = pivotState.materializedInput.length;\n const totalPages = Math.ceil(totalPivotRows / (pivotProps.pageSize || 20));\n\n const unusedList = Object.keys(pivotState.attrValues)\n .filter(e => e && e.trim() !== '' && !pivotProps.rows.includes(e) && !pivotProps.cols.includes(e))\n .sort(sortAs(pivotState.unusedOrder || []));\n\n const colList = pivotProps.cols.filter(e => e && e.trim() !== '');\n const rowList = pivotProps.rows.filter(e => e && e.trim() !== '');\n\n const AttributeItem = ({ attr, pivotState, pivotProps, actions, openDropdown, setOpenDropdown }) => {\n const values = Object.keys(pivotState.attrValues[attr] || {});\n const valueFilter = pivotProps.valueFilter[attr] || {};\n const [filterText, setFilterText] = useState('');\n\n const filteredValues = values.filter(v =>\n v.toString().toLowerCase().includes(filterText.toLowerCase())\n ).sort();\n\n return (\n <div\n className=\"relative inline-flex items-center gap-2 bg-white border border-slate-200 rounded-xl px-3 py-1.5 text-[13px] font-semibold text-slate-700 shadow-sm cursor-grab hover:bg-slate-50 transition-colors group\"\n data-id={attr}\n >\n <GripVertical size={14} className=\"text-slate-300 group-hover:text-slate-400 transition-colors\" />\n <span>{attr}</span>\n <button\n onClick={(e) => {\n e.stopPropagation();\n // Si el elemento se está moviendo (clase de sortable activa), no abrir\n if (e.currentTarget.closest('.sortable-chosen')) return;\n setOpenDropdown(openDropdown === attr ? null : attr);\n }}\n className={cn(\n \"text-slate-400 hover:text-slate-600 focus:outline-none ml-1 flex items-center justify-center p-0.5 rounded-sm transition-colors\",\n Object.keys(valueFilter).length > 0 && \"text-blue-600\"\n )}\n >\n <Filter size={14} />\n </button>\n\n {openDropdown === attr && (\n <div\n className=\"absolute top-full left-0 mt-2 w-64 bg-white border border-slate-200 rounded-2xl shadow-2xl z-[1000] p-4 cursor-default\"\n onClick={e => e.stopPropagation()}\n >\n <div className=\"flex items-center justify-between mb-3\">\n <h4 className=\"text-[11px] font-black text-slate-400 uppercase tracking-widest\">Filtrar: {attr}</h4>\n <button onClick={() => setOpenDropdown(null)} className=\"text-slate-400 hover:text-slate-600 font-bold text-lg\">×</button>\n </div>\n\n <input\n type=\"text\"\n placeholder=\"Buscar valores...\"\n className=\"w-full px-3 py-2 text-xs border border-slate-200 rounded-lg mb-3 focus:outline-none focus:ring-2 focus:ring-blue-500/20\"\n value={filterText}\n onChange={e => setFilterText(e.target.value)}\n />\n\n <div className=\"flex gap-2 mb-3\">\n <button\n onClick={() => actions.setValuesInFilter(attr, [])}\n className=\"text-[10px] font-bold text-blue-600 hover:text-blue-700 uppercase\"\n >\n Seleccionar Todo\n </button>\n <button\n onClick={() => actions.setValuesInFilter(attr, values)}\n className=\"text-[10px] font-bold text-slate-400 hover:text-slate-500 uppercase\"\n >\n Limpiar\n </button>\n </div>\n\n <div className=\"max-h-48 overflow-y-auto custom-scrollbar space-y-1\">\n {filteredValues.map(v => (\n <label key={v} className=\"flex items-center gap-2 px-2 py-1.5 hover:bg-slate-50 rounded-lg cursor-pointer transition-colors\">\n <input\n type=\"checkbox\"\n checked={!(v in valueFilter)}\n onChange={() => actions.toggleFilter(attr, v)}\n className=\"w-3.5 h-3.5 rounded border-slate-300 text-blue-600 focus:ring-blue-500/20\"\n />\n <span className=\"text-xs text-slate-600 font-medium truncate\">\n {v === 'null' ? <em className=\"text-slate-400\">null</em> : v}\n </span>\n </label>\n ))}\n </div>\n </div>\n )}\n </div>\n );\n };\n\n const renderAttribute = (attr) => (\n <AttributeItem\n key={attr}\n attr={attr}\n data-id={attr}\n pivotState={pivotState}\n pivotProps={pivotProps}\n actions={actions}\n openDropdown={openDropdown}\n setOpenDropdown={setOpenDropdown}\n />\n );\n\n return (\n <div className=\"flex flex-col bg-white border border-slate-200 rounded-lg overflow-hidden font-sans text-slate-800 text-sm shadow-sm\">\n {/* Row 1: Renderer Dropdown & Unused Attributes */}\n <div className=\"flex w-full border-b border-slate-200 min-h-[4rem]\">\n {/* Renderer */}\n <div className=\"w-[300px] p-4 border-r border-slate-200 bg-white flex flex-col justify-start flex-shrink-0\">\n <select\n className=\"w-full text-xs font-medium border border-slate-300 rounded px-3 py-1.5 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none hover:border-slate-400 bg-white text-slate-700\"\n value={rendererName}\n onChange={(e) => actions.updateProp('rendererName', e.target.value)}\n >\n {Object.keys(pivotProps.renderers).map(r => <option key={r} value={r}>{r}</option>)}\n </select>\n </div>\n\n {/* Unused Attrs */}\n <div className=\"flex-1 p-4 bg-slate-50/80\">\n <DnDContainer\n list={unusedList}\n setList={(newOrder) => {\n actions.setUnusedOrder(newOrder);\n }}\n className=\"flex flex-wrap gap-2 w-full min-h-[1.5rem]\"\n >\n {unusedList.map(renderAttribute)}\n </DnDContainer>\n </div>\n </div>\n\n {/* Row 2: Aggregators & Column Attributes */}\n <div className=\"flex w-full border-b border-slate-200 min-h-[4rem]\">\n {/* Aggregators */}\n <div className=\"w-[300px] p-4 border-r border-slate-200 bg-slate-50/30 flex-shrink-0 flex items-start\">\n <div className=\"flex flex-col gap-2 w-full\">\n <div className=\"flex items-center gap-2\">\n <select\n className=\"flex-1 text-xs font-medium border border-slate-300 rounded px-3 py-1.5 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none hover:border-slate-400 bg-white text-slate-700\"\n value={aggregatorName}\n onChange={(e) => actions.updateProp('aggregatorName', e.target.value)}\n >\n {Object.keys(pivotProps.aggregators).map(r => <option key={r} value={r}>{r}</option>)}\n </select>\n\n <div className=\"flex items-center text-slate-600 gap-1.5 text-base leading-none\">\n <span className=\"cursor-pointer hover:text-slate-900 transition-colors\">↕</span>\n <span className=\"cursor-pointer hover:text-slate-900 transition-colors\">↔</span>\n </div>\n </div>\n\n {pivotProps.aggregators[pivotProps.aggregatorName]([])().numInputs > 0 && (\n <select\n className=\"w-full text-xs font-medium border border-slate-300 rounded px-3 py-1.5 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none hover:border-slate-400 bg-white text-slate-700\"\n value={pivotProps.vals[0] || ''}\n onChange={(e) => actions.updateProp('vals', [e.target.value])}\n >\n {Object.keys(pivotState.attrValues).map(r => <option key={r} value={r}>{r}</option>)}\n </select>\n )}\n </div>\n </div>\n\n {/* Col Attrs */}\n <div className=\"flex-1 p-4 bg-white\">\n <DnDContainer\n list={colList}\n setList={(newOrder) => {\n actions.updateProp('cols', newOrder);\n }}\n className=\"flex flex-wrap gap-2 w-full min-h-[1.5rem]\"\n >\n {colList.map(renderAttribute)}\n </DnDContainer>\n </div>\n </div>\n\n {/* Row 3: Row Attributes & Table Data */}\n <div className=\"flex w-full min-h-[400px]\">\n {/* Row Attrs */}\n <div className=\"w-[300px] p-4 border-r border-slate-200 bg-white flex-shrink-0\">\n <DnDContainer\n list={rowList}\n setList={(newOrder) => {\n actions.updateProp('rows', newOrder);\n }}\n className=\"flex flex-col gap-2 w-full min-h-[1.5rem]\"\n >\n {rowList.map(renderAttribute)}\n </DnDContainer>\n </div>\n {/* Table Output */}\n <div className={`pvtUi pvtSize-${pivotProps.size || 'lg'} flex-1 w-full p-4 bg-slate-50/30 overflow-auto`}>\n <PivotTable {...pivotProps} data={pivotState.materializedInput} />\n </div>\n </div>\n\n {/* Footer: Totals and Pagination */}\n {pivotProps.pagination && (\n <div className=\"flex items-center justify-between px-6 py-3 border-t border-slate-200 bg-white text-slate-600\">\n <div className=\"text-[13px] font-medium\">\n Registros: <span className=\"text-slate-900\">{totalRecords}</span> | Filas: <span className=\"text-slate-900\">{totalPivotRows}</span>\n </div>\n\n <div className=\"flex items-center gap-6\">\n <div className=\"flex items-center gap-1.5\">\n <button\n className=\"p-1 rounded-md hover:bg-slate-100 disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n disabled={pivotProps.page <= 1}\n onClick={() => actions.updateProp('page', 1)}\n >\n <ChevronsLeft size={18} />\n </button>\n <button\n className=\"p-1 rounded-md hover:bg-slate-100 disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n disabled={pivotProps.page <= 1}\n onClick={() => actions.updateProp('page', pivotProps.page - 1)}\n >\n <ChevronLeft size={18} />\n </button>\n\n <div className=\"flex items-center gap-2 mx-1\">\n <span className=\"text-[13px] font-medium\">Página</span>\n <input\n type=\"number\"\n className=\"w-12 h-8 text-center border border-slate-300 rounded-md text-[13px] font-semibold text-slate-900 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none\"\n value={pivotProps.page}\n min={1}\n max={totalPages}\n onChange={(e) => {\n const val = parseInt(e.target.value, 10);\n if (val > 0 && val <= totalPages) {\n actions.updateProp('page', val);\n }\n }}\n />\n <span className=\"text-[13px] font-medium text-slate-400\">de {totalPages}</span>\n </div>\n\n <button\n className=\"p-1 rounded-md hover:bg-slate-100 disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n disabled={pivotProps.page >= totalPages}\n onClick={() => actions.updateProp('page', pivotProps.page + 1)}\n >\n <ChevronRight size={18} />\n </button>\n <button\n className=\"p-1 rounded-md hover:bg-slate-100 disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n disabled={pivotProps.page >= totalPages}\n onClick={() => actions.updateProp('page', totalPages)}\n >\n <ChevronsRight size={18} />\n </button>\n </div>\n\n <div className=\"flex items-center gap-2 border-l border-slate-200 pl-6\">\n <span className=\"text-[13px] font-medium text-slate-400\">Mostrar</span>\n <select\n className=\"text-[13px] font-semibold border border-slate-300 rounded-md px-2 py-1 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none hover:border-slate-400 bg-white text-slate-900\"\n value={pivotProps.pageSize}\n onChange={(e) => {\n actions.updateProp('pageSize', parseInt(e.target.value, 10));\n actions.updateProp('page', 1);\n }}\n >\n {[10, 20, 50, 100].map(n => (\n <option key={n} value={n}>\n {n}\n </option>\n ))}\n </select>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -339,7 +339,7 @@ function TailwindUI(props) {
|
|
|
339
339
|
},
|
|
340
340
|
className: "flex flex-col gap-2 w-full min-h-[1.5rem]"
|
|
341
341
|
}, rowList.map(renderAttribute))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
342
|
-
className: "flex-1 w-full p-4 bg-slate-50/30 overflow-auto"
|
|
342
|
+
className: "pvtUi pvtSize-".concat(pivotProps.size || 'lg', " flex-1 w-full p-4 bg-slate-50/30 overflow-auto")
|
|
343
343
|
}, /*#__PURE__*/_react["default"].createElement(_PivotTable["default"], _extends({}, pivotProps, {
|
|
344
344
|
data: pivotState.materializedInput
|
|
345
345
|
})))), pivotProps.pagination && /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TailwindUI.js","names":["_react","_interopRequireWildcard","require","_usePivot2","_clsx","_interopRequireDefault","_tailwindMerge","_sortablejs","_PivotTable","_Utilities","_lucideReact","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","l","iterator","u","a","next","done","Array","isArray","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_arrayLikeToArray","toString","slice","constructor","name","from","test","cn","_len","inputs","_key","twMerge","clsx","DnDContainer","_ref","list","setList","className","children","el","useRef","setListRef","listRef","useEffect","current","sortable","_currentList","Sortable","create","group","ghostClass","animation","onEnd","evt","to","oldIndex","newIndex","item","itemId","getAttribute","remove","nextEl","insertBefore","appendChild","newOrder","splice","fromSortable","toSortable","_setList","sourceItems","id","targetItems","destroy","createElement","ref","style","listStyleType","padding","margin","minHeight","width","display","flexWrap","gap","React","Children","map","child","key","props","TailwindUI","_usePivot","usePivot","pivotProps","pivotState","state","actions","_useState","useState","_useState2","openDropdown","setOpenDropdown","aggregatorName","rendererName","pivotData","PivotData","data","materializedInput","totalPivotRows","getRowKeys","totalRecords","totalPages","Math","ceil","pageSize","unusedList","attrValues","trim","rows","includes","cols","sort","sortAs","unusedOrder","colList","rowList","AttributeItem","_ref2","attr","values","valueFilter","_useState3","_useState4","filterText","setFilterText","filteredValues","v","toLowerCase","GripVertical","size","onClick","stopPropagation","currentTarget","closest","Filter","type","placeholder","onChange","target","setValuesInFilter","checked","toggleFilter","renderAttribute","updateProp","renderers","setUnusedOrder","aggregators","numInputs","vals","pagination","disabled","page","ChevronsLeft","ChevronLeft","min","max","val","parseInt","ChevronRight","ChevronsRight"],"sources":["../../src/renderers/TailwindUI.jsx"],"sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport { usePivot } from '../hooks/usePivot';\nimport clsx from 'clsx';\nimport { twMerge } from 'tailwind-merge';\nimport Sortable from 'sortablejs';\nimport PivotTable from '../PivotTable';\nimport { PivotData, sortAs } from '../Utilities';\nimport { GripVertical, Filter, ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from 'lucide-react';\n\nfunction cn(...inputs) {\n return twMerge(clsx(inputs));\n}\n\nconst DnDContainer = ({ list, setList, className, children }) => {\n const el = useRef(null);\n const setListRef = useRef(setList);\n const listRef = useRef(list);\n \n useEffect(() => {\n setListRef.current = setList;\n }, [setList]);\n\n useEffect(() => {\n listRef.current = list;\n if (el.current && el.current.sortable) {\n el.current.sortable._currentList = list;\n }\n }, [list]);\n\n useEffect(() => {\n const sortable = Sortable.create(el.current, {\n group: 'shared',\n ghostClass: 'opacity-50',\n animation: 150,\n onEnd: (evt) => {\n const { from, to, oldIndex, newIndex, item } = evt;\n const itemId = item.getAttribute('data-id');\n \n // ── REVERSIÓN SÍNCRONA DEL DOM ──\n // Muy importante: eliminamos el item de su posición actual (to)\n // y lo devolvemos a la original (from) para que React lo encuentre.\n if (from !== to || oldIndex !== newIndex) {\n item.remove();\n const nextEl = from.children[oldIndex];\n if (nextEl) {\n from.insertBefore(item, nextEl);\n } else {\n from.appendChild(item);\n }\n }\n \n if (from === to) {\n // ── Reordenamiento interno ──\n const newOrder = [...listRef.current];\n newOrder.splice(oldIndex, 1);\n newOrder.splice(newIndex, 0, itemId);\n \n if (setListRef.current) {\n setListRef.current(newOrder);\n }\n } else {\n // ── Movimiento entre listas ──\n const fromSortable = from.sortable;\n const toSortable = to.sortable;\n \n if (fromSortable?._setList && toSortable?._setList) {\n const sourceItems = fromSortable._currentList.filter(id => id !== itemId);\n const targetItems = [...toSortable._currentList];\n targetItems.splice(newIndex, 0, itemId);\n \n fromSortable._setList(sourceItems);\n toSortable._setList(targetItems);\n }\n }\n }, });\n el.current.sortable = sortable;\n sortable._setList = (newOrder) => {\n if (setListRef.current) {\n setListRef.current(newOrder);\n }\n };\n sortable._currentList = listRef.current;\n\n return () => sortable.destroy();\n }, []);\n\n return (\n <div className={className}>\n <ul \n ref={el} \n style={{ \n listStyleType: 'none', \n padding: 0, \n margin: 0, \n minHeight: '1.5rem', \n width: '100%',\n display: 'flex',\n flexWrap: 'wrap',\n gap: '8px'\n }}\n >\n {React.Children.map(children, child => (\n <li key={child.key} data-id={child.props['data-id']}>\n {child}\n </li>\n ))}\n </ul>\n </div>\n );\n};\n\nexport function TailwindUI(props) {\n const { props: pivotProps, state: pivotState, actions } = usePivot(props);\n const [openDropdown, setOpenDropdown] = useState(null);\n\n const aggregatorName = pivotProps.aggregatorName;\n const rendererName = pivotProps.rendererName;\n\n const pivotData = new PivotData({\n ...pivotProps,\n data: pivotState.materializedInput,\n });\n const totalPivotRows = pivotData.getRowKeys().length;\n const totalRecords = pivotState.materializedInput.length;\n const totalPages = Math.ceil(totalPivotRows / (pivotProps.pageSize || 20));\n\n const unusedList = Object.keys(pivotState.attrValues)\n .filter(e => e && e.trim() !== '' && !pivotProps.rows.includes(e) && !pivotProps.cols.includes(e))\n .sort(sortAs(pivotState.unusedOrder || []));\n\n const colList = pivotProps.cols.filter(e => e && e.trim() !== '');\n const rowList = pivotProps.rows.filter(e => e && e.trim() !== '');\n\n const AttributeItem = ({ attr, pivotState, pivotProps, actions, openDropdown, setOpenDropdown }) => {\n const values = Object.keys(pivotState.attrValues[attr] || {});\n const valueFilter = pivotProps.valueFilter[attr] || {};\n const [filterText, setFilterText] = useState('');\n \n const filteredValues = values.filter(v => \n v.toString().toLowerCase().includes(filterText.toLowerCase())\n ).sort();\n\n return (\n <div\n className=\"relative inline-flex items-center gap-2 bg-white border border-slate-200 rounded-xl px-3 py-1.5 text-[13px] font-semibold text-slate-700 shadow-sm cursor-grab hover:bg-slate-50 transition-colors group\"\n data-id={attr}\n >\n <GripVertical size={14} className=\"text-slate-300 group-hover:text-slate-400 transition-colors\" />\n <span>{attr}</span>\n <button\n onClick={(e) => {\n e.stopPropagation();\n // Si el elemento se está moviendo (clase de sortable activa), no abrir\n if (e.currentTarget.closest('.sortable-chosen')) return;\n setOpenDropdown(openDropdown === attr ? null : attr);\n }}\n className={cn(\n \"text-slate-400 hover:text-slate-600 focus:outline-none ml-1 flex items-center justify-center p-0.5 rounded-sm transition-colors\",\n Object.keys(valueFilter).length > 0 && \"text-blue-600\"\n )}\n >\n <Filter size={14} />\n </button>\n\n {openDropdown === attr && (\n <div \n className=\"absolute top-full left-0 mt-2 w-64 bg-white border border-slate-200 rounded-2xl shadow-2xl z-[1000] p-4 cursor-default\"\n onClick={e => e.stopPropagation()}\n >\n <div className=\"flex items-center justify-between mb-3\">\n <h4 className=\"text-[11px] font-black text-slate-400 uppercase tracking-widest\">Filtrar: {attr}</h4>\n <button onClick={() => setOpenDropdown(null)} className=\"text-slate-400 hover:text-slate-600 font-bold text-lg\">×</button>\n </div>\n\n <input\n type=\"text\"\n placeholder=\"Buscar valores...\"\n className=\"w-full px-3 py-2 text-xs border border-slate-200 rounded-lg mb-3 focus:outline-none focus:ring-2 focus:ring-blue-500/20\"\n value={filterText}\n onChange={e => setFilterText(e.target.value)}\n />\n\n <div className=\"flex gap-2 mb-3\">\n <button\n onClick={() => actions.setValuesInFilter(attr, [])}\n className=\"text-[10px] font-bold text-blue-600 hover:text-blue-700 uppercase\"\n >\n Seleccionar Todo\n </button>\n <button\n onClick={() => actions.setValuesInFilter(attr, values)}\n className=\"text-[10px] font-bold text-slate-400 hover:text-slate-500 uppercase\"\n >\n Limpiar\n </button>\n </div>\n\n <div className=\"max-h-48 overflow-y-auto custom-scrollbar space-y-1\">\n {filteredValues.map(v => (\n <label key={v} className=\"flex items-center gap-2 px-2 py-1.5 hover:bg-slate-50 rounded-lg cursor-pointer transition-colors\">\n <input\n type=\"checkbox\"\n checked={!(v in valueFilter)}\n onChange={() => actions.toggleFilter(attr, v)}\n className=\"w-3.5 h-3.5 rounded border-slate-300 text-blue-600 focus:ring-blue-500/20\"\n />\n <span className=\"text-xs text-slate-600 font-medium truncate\">\n {v === 'null' ? <em className=\"text-slate-400\">null</em> : v}\n </span>\n </label>\n ))}\n </div>\n </div>\n )}\n </div>\n );\n };\n\n const renderAttribute = (attr) => (\n <AttributeItem\n key={attr}\n attr={attr}\n data-id={attr}\n pivotState={pivotState}\n pivotProps={pivotProps}\n actions={actions}\n openDropdown={openDropdown}\n setOpenDropdown={setOpenDropdown}\n />\n );\n\n return (\n <div className=\"flex flex-col bg-white border border-slate-200 rounded-lg overflow-hidden font-sans text-slate-800 text-sm shadow-sm\">\n {/* Row 1: Renderer Dropdown & Unused Attributes */}\n <div className=\"flex w-full border-b border-slate-200 min-h-[4rem]\">\n {/* Renderer */}\n <div className=\"w-[300px] p-4 border-r border-slate-200 bg-white flex flex-col justify-start flex-shrink-0\">\n <select\n className=\"w-full text-xs font-medium border border-slate-300 rounded px-3 py-1.5 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none hover:border-slate-400 bg-white text-slate-700\"\n value={rendererName}\n onChange={(e) => actions.updateProp('rendererName', e.target.value)}\n >\n {Object.keys(pivotProps.renderers).map(r => <option key={r} value={r}>{r}</option>)}\n </select>\n </div>\n\n {/* Unused Attrs */}\n <div className=\"flex-1 p-4 bg-slate-50/80\">\n <DnDContainer\n list={unusedList}\n setList={(newOrder) => {\n actions.setUnusedOrder(newOrder);\n }}\n className=\"flex flex-wrap gap-2 w-full min-h-[1.5rem]\"\n >\n {unusedList.map(renderAttribute)}\n </DnDContainer>\n </div>\n </div>\n\n {/* Row 2: Aggregators & Column Attributes */}\n <div className=\"flex w-full border-b border-slate-200 min-h-[4rem]\">\n {/* Aggregators */}\n <div className=\"w-[300px] p-4 border-r border-slate-200 bg-slate-50/30 flex-shrink-0 flex items-start\">\n <div className=\"flex flex-col gap-2 w-full\">\n <div className=\"flex items-center gap-2\">\n <select\n className=\"flex-1 text-xs font-medium border border-slate-300 rounded px-3 py-1.5 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none hover:border-slate-400 bg-white text-slate-700\"\n value={aggregatorName}\n onChange={(e) => actions.updateProp('aggregatorName', e.target.value)}\n >\n {Object.keys(pivotProps.aggregators).map(r => <option key={r} value={r}>{r}</option>)}\n </select>\n\n <div className=\"flex items-center text-slate-600 gap-1.5 text-base leading-none\">\n <span className=\"cursor-pointer hover:text-slate-900 transition-colors\">↕</span>\n <span className=\"cursor-pointer hover:text-slate-900 transition-colors\">↔</span>\n </div>\n </div>\n\n {pivotProps.aggregators[pivotProps.aggregatorName]([])().numInputs > 0 && (\n <select\n className=\"w-full text-xs font-medium border border-slate-300 rounded px-3 py-1.5 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none hover:border-slate-400 bg-white text-slate-700\"\n value={pivotProps.vals[0] || ''}\n onChange={(e) => actions.updateProp('vals', [e.target.value])}\n >\n {Object.keys(pivotState.attrValues).map(r => <option key={r} value={r}>{r}</option>)}\n </select>\n )}\n </div>\n </div>\n\n {/* Col Attrs */}\n <div className=\"flex-1 p-4 bg-white\">\n <DnDContainer\n list={colList}\n setList={(newOrder) => {\n actions.updateProp('cols', newOrder);\n }}\n className=\"flex flex-wrap gap-2 w-full min-h-[1.5rem]\"\n >\n {colList.map(renderAttribute)}\n </DnDContainer>\n </div>\n </div>\n\n {/* Row 3: Row Attributes & Table Data */}\n <div className=\"flex w-full min-h-[400px]\">\n {/* Row Attrs */}\n <div className=\"w-[300px] p-4 border-r border-slate-200 bg-white flex-shrink-0\">\n <DnDContainer\n list={rowList}\n setList={(newOrder) => {\n actions.updateProp('rows', newOrder);\n }}\n className=\"flex flex-col gap-2 w-full min-h-[1.5rem]\"\n >\n {rowList.map(renderAttribute)}\n </DnDContainer>\n </div>\n\n {/* Table Output */}\n <div className=\"flex-1 w-full p-4 bg-slate-50/30 overflow-auto\">\n <PivotTable {...pivotProps} data={pivotState.materializedInput} />\n </div>\n </div>\n\n {/* Footer: Totals and Pagination */}\n {pivotProps.pagination && (\n <div className=\"flex items-center justify-between px-6 py-3 border-t border-slate-200 bg-white text-slate-600\">\n <div className=\"text-[13px] font-medium\">\n Registros: <span className=\"text-slate-900\">{totalRecords}</span> | Filas: <span className=\"text-slate-900\">{totalPivotRows}</span>\n </div>\n\n <div className=\"flex items-center gap-6\">\n <div className=\"flex items-center gap-1.5\">\n <button\n className=\"p-1 rounded-md hover:bg-slate-100 disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n disabled={pivotProps.page <= 1}\n onClick={() => actions.updateProp('page', 1)}\n >\n <ChevronsLeft size={18} />\n </button>\n <button\n className=\"p-1 rounded-md hover:bg-slate-100 disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n disabled={pivotProps.page <= 1}\n onClick={() => actions.updateProp('page', pivotProps.page - 1)}\n >\n <ChevronLeft size={18} />\n </button>\n\n <div className=\"flex items-center gap-2 mx-1\">\n <span className=\"text-[13px] font-medium\">Página</span>\n <input\n type=\"number\"\n className=\"w-12 h-8 text-center border border-slate-300 rounded-md text-[13px] font-semibold text-slate-900 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none\"\n value={pivotProps.page}\n min={1}\n max={totalPages}\n onChange={(e) => {\n const val = parseInt(e.target.value, 10);\n if (val > 0 && val <= totalPages) {\n actions.updateProp('page', val);\n }\n }}\n />\n <span className=\"text-[13px] font-medium text-slate-400\">de {totalPages}</span>\n </div>\n\n <button\n className=\"p-1 rounded-md hover:bg-slate-100 disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n disabled={pivotProps.page >= totalPages}\n onClick={() => actions.updateProp('page', pivotProps.page + 1)}\n >\n <ChevronRight size={18} />\n </button>\n <button\n className=\"p-1 rounded-md hover:bg-slate-100 disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n disabled={pivotProps.page >= totalPages}\n onClick={() => actions.updateProp('page', totalPages)}\n >\n <ChevronsRight size={18} />\n </button>\n </div>\n\n <div className=\"flex items-center gap-2 border-l border-slate-200 pl-6\">\n <span className=\"text-[13px] font-medium text-slate-400\">Mostrar</span>\n <select\n className=\"text-[13px] font-semibold border border-slate-300 rounded-md px-2 py-1 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none hover:border-slate-400 bg-white text-slate-900\"\n value={pivotProps.pageSize}\n onChange={(e) => {\n actions.updateProp('pageSize', parseInt(e.target.value, 10));\n actions.updateProp('page', 1);\n }}\n >\n {[10, 20, 50, 100].map(n => (\n <option key={n} value={n}>\n {n}\n </option>\n ))}\n </select>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"TailwindUI.js","names":["_react","_interopRequireWildcard","require","_usePivot2","_clsx","_interopRequireDefault","_tailwindMerge","_sortablejs","_PivotTable","_Utilities","_lucideReact","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","l","iterator","u","a","next","done","Array","isArray","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","_arrayLikeToArray","toString","slice","constructor","name","from","test","cn","_len","inputs","_key","twMerge","clsx","DnDContainer","_ref","list","setList","className","children","el","useRef","setListRef","listRef","useEffect","current","sortable","_currentList","Sortable","create","group","ghostClass","animation","onEnd","evt","to","oldIndex","newIndex","item","itemId","getAttribute","remove","nextEl","insertBefore","appendChild","newOrder","splice","fromSortable","toSortable","_setList","sourceItems","id","targetItems","destroy","createElement","ref","style","listStyleType","padding","margin","minHeight","width","display","flexWrap","gap","React","Children","map","child","key","props","TailwindUI","_usePivot","usePivot","pivotProps","pivotState","state","actions","_useState","useState","_useState2","openDropdown","setOpenDropdown","aggregatorName","rendererName","pivotData","PivotData","data","materializedInput","totalPivotRows","getRowKeys","totalRecords","totalPages","Math","ceil","pageSize","unusedList","attrValues","trim","rows","includes","cols","sort","sortAs","unusedOrder","colList","rowList","AttributeItem","_ref2","attr","values","valueFilter","_useState3","_useState4","filterText","setFilterText","filteredValues","v","toLowerCase","GripVertical","size","onClick","stopPropagation","currentTarget","closest","Filter","type","placeholder","onChange","target","setValuesInFilter","checked","toggleFilter","renderAttribute","updateProp","renderers","setUnusedOrder","aggregators","numInputs","vals","concat","pagination","disabled","page","ChevronsLeft","ChevronLeft","min","max","val","parseInt","ChevronRight","ChevronsRight"],"sources":["../../src/renderers/TailwindUI.jsx"],"sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport { usePivot } from '../hooks/usePivot';\nimport clsx from 'clsx';\nimport { twMerge } from 'tailwind-merge';\nimport Sortable from 'sortablejs';\nimport PivotTable from '../PivotTable';\nimport { PivotData, sortAs } from '../Utilities';\nimport { GripVertical, Filter, ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from 'lucide-react';\n\nfunction cn(...inputs) {\n return twMerge(clsx(inputs));\n}\n\nconst DnDContainer = ({ list, setList, className, children }) => {\n const el = useRef(null);\n const setListRef = useRef(setList);\n const listRef = useRef(list);\n\n useEffect(() => {\n setListRef.current = setList;\n }, [setList]);\n\n useEffect(() => {\n listRef.current = list;\n if (el.current && el.current.sortable) {\n el.current.sortable._currentList = list;\n }\n }, [list]);\n\n useEffect(() => {\n const sortable = Sortable.create(el.current, {\n group: 'shared',\n ghostClass: 'opacity-50',\n animation: 150,\n onEnd: (evt) => {\n const { from, to, oldIndex, newIndex, item } = evt;\n const itemId = item.getAttribute('data-id');\n\n // ── REVERSIÓN SÍNCRONA DEL DOM ──\n // Muy importante: eliminamos el item de su posición actual (to)\n // y lo devolvemos a la original (from) para que React lo encuentre.\n if (from !== to || oldIndex !== newIndex) {\n item.remove();\n const nextEl = from.children[oldIndex];\n if (nextEl) {\n from.insertBefore(item, nextEl);\n } else {\n from.appendChild(item);\n }\n }\n\n if (from === to) {\n // ── Reordenamiento interno ──\n const newOrder = [...listRef.current];\n newOrder.splice(oldIndex, 1);\n newOrder.splice(newIndex, 0, itemId);\n\n if (setListRef.current) {\n setListRef.current(newOrder);\n }\n } else {\n // ── Movimiento entre listas ──\n const fromSortable = from.sortable;\n const toSortable = to.sortable;\n\n if (fromSortable?._setList && toSortable?._setList) {\n const sourceItems = fromSortable._currentList.filter(id => id !== itemId);\n const targetItems = [...toSortable._currentList];\n targetItems.splice(newIndex, 0, itemId);\n\n fromSortable._setList(sourceItems);\n toSortable._setList(targetItems);\n }\n }\n },\n });\n el.current.sortable = sortable;\n sortable._setList = (newOrder) => {\n if (setListRef.current) {\n setListRef.current(newOrder);\n }\n };\n sortable._currentList = listRef.current;\n\n return () => sortable.destroy();\n }, []);\n\n return (\n <div className={className}>\n <ul\n ref={el}\n style={{\n listStyleType: 'none',\n padding: 0,\n margin: 0,\n minHeight: '1.5rem',\n width: '100%',\n display: 'flex',\n flexWrap: 'wrap',\n gap: '8px'\n }}\n >\n {React.Children.map(children, child => (\n <li key={child.key} data-id={child.props['data-id']}>\n {child}\n </li>\n ))}\n </ul>\n </div>\n );\n};\n\nexport function TailwindUI(props) {\n const { props: pivotProps, state: pivotState, actions } = usePivot(props);\n const [openDropdown, setOpenDropdown] = useState(null);\n\n const aggregatorName = pivotProps.aggregatorName;\n const rendererName = pivotProps.rendererName;\n\n const pivotData = new PivotData({\n ...pivotProps,\n data: pivotState.materializedInput,\n });\n const totalPivotRows = pivotData.getRowKeys().length;\n const totalRecords = pivotState.materializedInput.length;\n const totalPages = Math.ceil(totalPivotRows / (pivotProps.pageSize || 20));\n\n const unusedList = Object.keys(pivotState.attrValues)\n .filter(e => e && e.trim() !== '' && !pivotProps.rows.includes(e) && !pivotProps.cols.includes(e))\n .sort(sortAs(pivotState.unusedOrder || []));\n\n const colList = pivotProps.cols.filter(e => e && e.trim() !== '');\n const rowList = pivotProps.rows.filter(e => e && e.trim() !== '');\n\n const AttributeItem = ({ attr, pivotState, pivotProps, actions, openDropdown, setOpenDropdown }) => {\n const values = Object.keys(pivotState.attrValues[attr] || {});\n const valueFilter = pivotProps.valueFilter[attr] || {};\n const [filterText, setFilterText] = useState('');\n\n const filteredValues = values.filter(v =>\n v.toString().toLowerCase().includes(filterText.toLowerCase())\n ).sort();\n\n return (\n <div\n className=\"relative inline-flex items-center gap-2 bg-white border border-slate-200 rounded-xl px-3 py-1.5 text-[13px] font-semibold text-slate-700 shadow-sm cursor-grab hover:bg-slate-50 transition-colors group\"\n data-id={attr}\n >\n <GripVertical size={14} className=\"text-slate-300 group-hover:text-slate-400 transition-colors\" />\n <span>{attr}</span>\n <button\n onClick={(e) => {\n e.stopPropagation();\n // Si el elemento se está moviendo (clase de sortable activa), no abrir\n if (e.currentTarget.closest('.sortable-chosen')) return;\n setOpenDropdown(openDropdown === attr ? null : attr);\n }}\n className={cn(\n \"text-slate-400 hover:text-slate-600 focus:outline-none ml-1 flex items-center justify-center p-0.5 rounded-sm transition-colors\",\n Object.keys(valueFilter).length > 0 && \"text-blue-600\"\n )}\n >\n <Filter size={14} />\n </button>\n\n {openDropdown === attr && (\n <div\n className=\"absolute top-full left-0 mt-2 w-64 bg-white border border-slate-200 rounded-2xl shadow-2xl z-[1000] p-4 cursor-default\"\n onClick={e => e.stopPropagation()}\n >\n <div className=\"flex items-center justify-between mb-3\">\n <h4 className=\"text-[11px] font-black text-slate-400 uppercase tracking-widest\">Filtrar: {attr}</h4>\n <button onClick={() => setOpenDropdown(null)} className=\"text-slate-400 hover:text-slate-600 font-bold text-lg\">×</button>\n </div>\n\n <input\n type=\"text\"\n placeholder=\"Buscar valores...\"\n className=\"w-full px-3 py-2 text-xs border border-slate-200 rounded-lg mb-3 focus:outline-none focus:ring-2 focus:ring-blue-500/20\"\n value={filterText}\n onChange={e => setFilterText(e.target.value)}\n />\n\n <div className=\"flex gap-2 mb-3\">\n <button\n onClick={() => actions.setValuesInFilter(attr, [])}\n className=\"text-[10px] font-bold text-blue-600 hover:text-blue-700 uppercase\"\n >\n Seleccionar Todo\n </button>\n <button\n onClick={() => actions.setValuesInFilter(attr, values)}\n className=\"text-[10px] font-bold text-slate-400 hover:text-slate-500 uppercase\"\n >\n Limpiar\n </button>\n </div>\n\n <div className=\"max-h-48 overflow-y-auto custom-scrollbar space-y-1\">\n {filteredValues.map(v => (\n <label key={v} className=\"flex items-center gap-2 px-2 py-1.5 hover:bg-slate-50 rounded-lg cursor-pointer transition-colors\">\n <input\n type=\"checkbox\"\n checked={!(v in valueFilter)}\n onChange={() => actions.toggleFilter(attr, v)}\n className=\"w-3.5 h-3.5 rounded border-slate-300 text-blue-600 focus:ring-blue-500/20\"\n />\n <span className=\"text-xs text-slate-600 font-medium truncate\">\n {v === 'null' ? <em className=\"text-slate-400\">null</em> : v}\n </span>\n </label>\n ))}\n </div>\n </div>\n )}\n </div>\n );\n };\n\n const renderAttribute = (attr) => (\n <AttributeItem\n key={attr}\n attr={attr}\n data-id={attr}\n pivotState={pivotState}\n pivotProps={pivotProps}\n actions={actions}\n openDropdown={openDropdown}\n setOpenDropdown={setOpenDropdown}\n />\n );\n\n return (\n <div className=\"flex flex-col bg-white border border-slate-200 rounded-lg overflow-hidden font-sans text-slate-800 text-sm shadow-sm\">\n {/* Row 1: Renderer Dropdown & Unused Attributes */}\n <div className=\"flex w-full border-b border-slate-200 min-h-[4rem]\">\n {/* Renderer */}\n <div className=\"w-[300px] p-4 border-r border-slate-200 bg-white flex flex-col justify-start flex-shrink-0\">\n <select\n className=\"w-full text-xs font-medium border border-slate-300 rounded px-3 py-1.5 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none hover:border-slate-400 bg-white text-slate-700\"\n value={rendererName}\n onChange={(e) => actions.updateProp('rendererName', e.target.value)}\n >\n {Object.keys(pivotProps.renderers).map(r => <option key={r} value={r}>{r}</option>)}\n </select>\n </div>\n\n {/* Unused Attrs */}\n <div className=\"flex-1 p-4 bg-slate-50/80\">\n <DnDContainer\n list={unusedList}\n setList={(newOrder) => {\n actions.setUnusedOrder(newOrder);\n }}\n className=\"flex flex-wrap gap-2 w-full min-h-[1.5rem]\"\n >\n {unusedList.map(renderAttribute)}\n </DnDContainer>\n </div>\n </div>\n\n {/* Row 2: Aggregators & Column Attributes */}\n <div className=\"flex w-full border-b border-slate-200 min-h-[4rem]\">\n {/* Aggregators */}\n <div className=\"w-[300px] p-4 border-r border-slate-200 bg-slate-50/30 flex-shrink-0 flex items-start\">\n <div className=\"flex flex-col gap-2 w-full\">\n <div className=\"flex items-center gap-2\">\n <select\n className=\"flex-1 text-xs font-medium border border-slate-300 rounded px-3 py-1.5 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none hover:border-slate-400 bg-white text-slate-700\"\n value={aggregatorName}\n onChange={(e) => actions.updateProp('aggregatorName', e.target.value)}\n >\n {Object.keys(pivotProps.aggregators).map(r => <option key={r} value={r}>{r}</option>)}\n </select>\n\n <div className=\"flex items-center text-slate-600 gap-1.5 text-base leading-none\">\n <span className=\"cursor-pointer hover:text-slate-900 transition-colors\">↕</span>\n <span className=\"cursor-pointer hover:text-slate-900 transition-colors\">↔</span>\n </div>\n </div>\n\n {pivotProps.aggregators[pivotProps.aggregatorName]([])().numInputs > 0 && (\n <select\n className=\"w-full text-xs font-medium border border-slate-300 rounded px-3 py-1.5 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none hover:border-slate-400 bg-white text-slate-700\"\n value={pivotProps.vals[0] || ''}\n onChange={(e) => actions.updateProp('vals', [e.target.value])}\n >\n {Object.keys(pivotState.attrValues).map(r => <option key={r} value={r}>{r}</option>)}\n </select>\n )}\n </div>\n </div>\n\n {/* Col Attrs */}\n <div className=\"flex-1 p-4 bg-white\">\n <DnDContainer\n list={colList}\n setList={(newOrder) => {\n actions.updateProp('cols', newOrder);\n }}\n className=\"flex flex-wrap gap-2 w-full min-h-[1.5rem]\"\n >\n {colList.map(renderAttribute)}\n </DnDContainer>\n </div>\n </div>\n\n {/* Row 3: Row Attributes & Table Data */}\n <div className=\"flex w-full min-h-[400px]\">\n {/* Row Attrs */}\n <div className=\"w-[300px] p-4 border-r border-slate-200 bg-white flex-shrink-0\">\n <DnDContainer\n list={rowList}\n setList={(newOrder) => {\n actions.updateProp('rows', newOrder);\n }}\n className=\"flex flex-col gap-2 w-full min-h-[1.5rem]\"\n >\n {rowList.map(renderAttribute)}\n </DnDContainer>\n </div>\n\n {/* Table Output */}\n <div className={`pvtUi pvtSize-${pivotProps.size || 'lg'} flex-1 w-full p-4 bg-slate-50/30 overflow-auto`}>\n <PivotTable {...pivotProps} data={pivotState.materializedInput} />\n </div>\n </div>\n\n {/* Footer: Totals and Pagination */}\n {pivotProps.pagination && (\n <div className=\"flex items-center justify-between px-6 py-3 border-t border-slate-200 bg-white text-slate-600\">\n <div className=\"text-[13px] font-medium\">\n Registros: <span className=\"text-slate-900\">{totalRecords}</span> | Filas: <span className=\"text-slate-900\">{totalPivotRows}</span>\n </div>\n\n <div className=\"flex items-center gap-6\">\n <div className=\"flex items-center gap-1.5\">\n <button\n className=\"p-1 rounded-md hover:bg-slate-100 disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n disabled={pivotProps.page <= 1}\n onClick={() => actions.updateProp('page', 1)}\n >\n <ChevronsLeft size={18} />\n </button>\n <button\n className=\"p-1 rounded-md hover:bg-slate-100 disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n disabled={pivotProps.page <= 1}\n onClick={() => actions.updateProp('page', pivotProps.page - 1)}\n >\n <ChevronLeft size={18} />\n </button>\n\n <div className=\"flex items-center gap-2 mx-1\">\n <span className=\"text-[13px] font-medium\">Página</span>\n <input\n type=\"number\"\n className=\"w-12 h-8 text-center border border-slate-300 rounded-md text-[13px] font-semibold text-slate-900 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none\"\n value={pivotProps.page}\n min={1}\n max={totalPages}\n onChange={(e) => {\n const val = parseInt(e.target.value, 10);\n if (val > 0 && val <= totalPages) {\n actions.updateProp('page', val);\n }\n }}\n />\n <span className=\"text-[13px] font-medium text-slate-400\">de {totalPages}</span>\n </div>\n\n <button\n className=\"p-1 rounded-md hover:bg-slate-100 disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n disabled={pivotProps.page >= totalPages}\n onClick={() => actions.updateProp('page', pivotProps.page + 1)}\n >\n <ChevronRight size={18} />\n </button>\n <button\n className=\"p-1 rounded-md hover:bg-slate-100 disabled:opacity-30 disabled:cursor-not-allowed transition-colors\"\n disabled={pivotProps.page >= totalPages}\n onClick={() => actions.updateProp('page', totalPages)}\n >\n <ChevronsRight size={18} />\n </button>\n </div>\n\n <div className=\"flex items-center gap-2 border-l border-slate-200 pl-6\">\n <span className=\"text-[13px] font-medium text-slate-400\">Mostrar</span>\n <select\n className=\"text-[13px] font-semibold border border-slate-300 rounded-md px-2 py-1 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 outline-none hover:border-slate-400 bg-white text-slate-900\"\n value={pivotProps.pageSize}\n onChange={(e) => {\n actions.updateProp('pageSize', parseInt(e.target.value, 10));\n actions.updateProp('page', 1);\n }}\n >\n {[10, 20, 50, 100].map(n => (\n <option key={n} value={n}>\n {n}\n </option>\n ))}\n </select>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-pivottable-plus",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.14",
|
|
4
4
|
"description": "A React-based pivot table with grouping and modern UI (Tailwind, Radix, Shadcn)",
|
|
5
5
|
"main": "dist/PivotTableUI.js",
|
|
6
6
|
"module": "dist/PivotTableUI.js",
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
"build:examples": "vite build",
|
|
36
36
|
"doPublish": "npm run build && npm publish",
|
|
37
37
|
"postpublish": "npm run clean",
|
|
38
|
-
"bump": "node scripts/bump-version.
|
|
39
|
-
"bump:minor": "node scripts/bump-version.
|
|
40
|
-
"bump:major": "node scripts/bump-version.
|
|
38
|
+
"bump": "node scripts/bump-version.mjs patch",
|
|
39
|
+
"bump:minor": "node scripts/bump-version.mjs minor",
|
|
40
|
+
"bump:major": "node scripts/bump-version.mjs major",
|
|
41
41
|
"docs:dev": "cd docs && next dev -p 3001",
|
|
42
42
|
"docs:build": "cd docs && npm run build",
|
|
43
43
|
"release": "npm run bump && git add package.json && git commit -m \"chore: bump version\" && git push origin master"
|
package/pivottable.css
CHANGED
|
@@ -151,6 +151,7 @@ table.pvtTable td:empty {
|
|
|
151
151
|
.pvtDropdown {
|
|
152
152
|
display: inline-block;
|
|
153
153
|
position: relative;
|
|
154
|
+
user-select: none;
|
|
154
155
|
-webkit-user-select: none;
|
|
155
156
|
-moz-user-select: none;
|
|
156
157
|
-khtml-user-select: none;
|
|
@@ -162,6 +163,7 @@ table.pvtTable td:empty {
|
|
|
162
163
|
float: right;
|
|
163
164
|
color: #a2b1c6;
|
|
164
165
|
}
|
|
166
|
+
|
|
165
167
|
.pvtDropdownCurrent {
|
|
166
168
|
text-align: left;
|
|
167
169
|
border: 1px solid #a2b1c6;
|
|
@@ -193,6 +195,7 @@ table.pvtTable td:empty {
|
|
|
193
195
|
font-size: 12px;
|
|
194
196
|
text-align: left;
|
|
195
197
|
}
|
|
198
|
+
|
|
196
199
|
.pvtDropdownActiveValue {
|
|
197
200
|
background: #ebf0f8;
|
|
198
201
|
}
|
|
@@ -213,6 +216,7 @@ table.pvtTable td:empty {
|
|
|
213
216
|
list-style-type: none;
|
|
214
217
|
cursor: move;
|
|
215
218
|
}
|
|
219
|
+
|
|
216
220
|
.pvtAxisContainer li.pvtPlaceholder {
|
|
217
221
|
-webkit-border-radius: 5px;
|
|
218
222
|
padding: 3px 15px;
|
|
@@ -220,6 +224,7 @@ table.pvtTable td:empty {
|
|
|
220
224
|
border-radius: 5px;
|
|
221
225
|
border: 1px dashed #a2b1c6;
|
|
222
226
|
}
|
|
227
|
+
|
|
223
228
|
.pvtAxisContainer li.pvtPlaceholder span.pvtAttr {
|
|
224
229
|
display: none;
|
|
225
230
|
}
|
|
@@ -248,6 +253,7 @@ table.pvtTable td:empty {
|
|
|
248
253
|
.pvtHorizList li {
|
|
249
254
|
display: inline-block;
|
|
250
255
|
}
|
|
256
|
+
|
|
251
257
|
.pvtVertList {
|
|
252
258
|
vertical-align: top;
|
|
253
259
|
}
|
|
@@ -331,12 +337,15 @@ table.pvtTable td:empty {
|
|
|
331
337
|
.pvtFilterBox h4 {
|
|
332
338
|
margin: 15px;
|
|
333
339
|
}
|
|
340
|
+
|
|
334
341
|
.pvtFilterBox p {
|
|
335
342
|
margin: 10px auto;
|
|
336
343
|
}
|
|
344
|
+
|
|
337
345
|
.pvtFilterBox button {
|
|
338
346
|
color: #2a3f5f;
|
|
339
347
|
}
|
|
348
|
+
|
|
340
349
|
.pvtFilterBox input[type='text'] {
|
|
341
350
|
width: 230px;
|
|
342
351
|
color: #2a3f5f;
|
|
@@ -382,6 +391,7 @@ table.pvtTable td:empty {
|
|
|
382
391
|
.pvtCheckContainer p:hover .pvtOnly {
|
|
383
392
|
display: block;
|
|
384
393
|
}
|
|
394
|
+
|
|
385
395
|
.pvtCheckContainer p:hover .pvtOnlySpacer {
|
|
386
396
|
display: none;
|
|
387
397
|
}
|
|
@@ -439,3 +449,48 @@ table.pvtTable td:empty {
|
|
|
439
449
|
color: #2a3f5f;
|
|
440
450
|
background: white;
|
|
441
451
|
}
|
|
452
|
+
|
|
453
|
+
/* Row Numbers and Spreadsheet Empty Paddings */
|
|
454
|
+
.pvtRowNumber {
|
|
455
|
+
background-color: var(--pvt-header-bg);
|
|
456
|
+
color: var(--pvt-text-color-muted, #6f7c87);
|
|
457
|
+
text-align: center;
|
|
458
|
+
font-weight: 500;
|
|
459
|
+
width: 40px;
|
|
460
|
+
min-width: 40px;
|
|
461
|
+
border-right: 1px solid var(--pvt-border-color);
|
|
462
|
+
border-bottom: 1px solid var(--pvt-border-color);
|
|
463
|
+
user-select: none;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
table.pvtTable tr.pvtEmptyRow td,
|
|
467
|
+
table.pvtTable tr.pvtEmptyRow th {
|
|
468
|
+
background-color: #fff;
|
|
469
|
+
border-bottom: 1px solid var(--pvt-border-color);
|
|
470
|
+
border-right: 1px solid var(--pvt-border-color);
|
|
471
|
+
height: var(--pvt-row-height);
|
|
472
|
+
line-height: var(--pvt-row-height);
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
table.pvtTable tr.pvtEmptyRow .pvtRowNumber {
|
|
476
|
+
background-color: var(--pvt-header-bg);
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
/* Size Configurations */
|
|
480
|
+
.pvtUi.pvtSize-sm table.pvtTable th,
|
|
481
|
+
.pvtUi.pvtSize-sm table.pvtTable td {
|
|
482
|
+
--pvt-font-size: 11px;
|
|
483
|
+
--pvt-row-height: 32px;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
.pvtUi.pvtSize-md table.pvtTable th,
|
|
487
|
+
.pvtUi.pvtSize-md table.pvtTable td {
|
|
488
|
+
--pvt-font-size: 12px;
|
|
489
|
+
--pvt-row-height: 36px;
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
.pvtUi.pvtSize-lg table.pvtTable th,
|
|
493
|
+
.pvtUi.pvtSize-lg table.pvtTable td {
|
|
494
|
+
--pvt-font-size: 14px;
|
|
495
|
+
--pvt-row-height: 42px;
|
|
496
|
+
}
|