react-pivottable-plus 1.0.16 → 1.0.18
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/README.md +2 -0
- package/dist/PivotTableUI.js +18 -4
- package/dist/PivotTableUI.js.map +1 -1
- package/dist/TableRenderers.js +113 -20
- package/dist/TableRenderers.js.map +1 -1
- package/dist/hooks/useColumnResize.js +112 -0
- package/dist/hooks/useColumnResize.js.map +1 -0
- package/dist/hooks/usePivot.js +6 -1
- package/dist/hooks/usePivot.js.map +1 -1
- package/package.json +5 -4
- package/pivottable.css +56 -0
package/README.md
CHANGED
|
@@ -34,6 +34,8 @@ npm install --save react-pivottable-plus react react-dom
|
|
|
34
34
|
Gracias a las últimas optimizaciones, implementar la tabla dinámica es más sencillo que nunca. La mayoría de las propiedades ya tienen valores por defecto inteligentes.
|
|
35
35
|
|
|
36
36
|
```jsx
|
|
37
|
+
"use client";
|
|
38
|
+
|
|
37
39
|
import React, { useState } from 'react';
|
|
38
40
|
import PivotTableUI from 'react-pivottable-plus'; // Importación directa
|
|
39
41
|
import 'react-pivottable-plus/pivottable.css';
|
package/dist/PivotTableUI.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
"use client";
|
|
2
3
|
|
|
3
4
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -344,7 +345,12 @@ var PivotTableUI = function PivotTableUI(props) {
|
|
|
344
345
|
_pivotProps$colOrder = pivotProps.colOrder,
|
|
345
346
|
colOrder = _pivotProps$colOrder === void 0 ? 'key_a_to_z' : _pivotProps$colOrder,
|
|
346
347
|
_pivotProps$size = pivotProps.size,
|
|
347
|
-
size = _pivotProps$size === void 0 ? 'lg' : _pivotProps$size
|
|
348
|
+
size = _pivotProps$size === void 0 ? 'lg' : _pivotProps$size,
|
|
349
|
+
_pivotProps$columnRes = pivotProps.columnResizing,
|
|
350
|
+
columnResizing = _pivotProps$columnRes === void 0 ? false : _pivotProps$columnRes,
|
|
351
|
+
_pivotProps$columnWid = pivotProps.columnWidths,
|
|
352
|
+
columnWidths = _pivotProps$columnWid === void 0 ? {} : _pivotProps$columnWid,
|
|
353
|
+
onColumnWidthChange = pivotProps.onColumnWidthChange;
|
|
348
354
|
var unusedAttrs = Object.keys(pivotState.attrValues).filter(function (e) {
|
|
349
355
|
return e && e.trim() !== '' && !rows.includes(e) && !cols.includes(e) && !hiddenAttributes.includes(e) && !hiddenFromDragDrop.includes(e);
|
|
350
356
|
}).sort((0, _Utilities.sortAs)(pivotState.unusedOrder || []));
|
|
@@ -493,7 +499,10 @@ var PivotTableUI = function PivotTableUI(props) {
|
|
|
493
499
|
colOrder: colOrder,
|
|
494
500
|
derivedAttributes: pivotProps.derivedAttributes,
|
|
495
501
|
cellPipeline: pivotProps.cellPipeline,
|
|
496
|
-
virtualization: pivotProps.virtualization
|
|
502
|
+
virtualization: pivotProps.virtualization,
|
|
503
|
+
columnResizing: columnResizing,
|
|
504
|
+
columnWidths: columnWidths,
|
|
505
|
+
onColumnWidthChange: onColumnWidthChange
|
|
497
506
|
};
|
|
498
507
|
var renderFooter = function renderFooter() {
|
|
499
508
|
var pivotData = new _Utilities.PivotData(componentProps);
|
|
@@ -763,7 +772,10 @@ PivotTableUI.propTypes = Object.assign({}, _Utilities.PivotData.propTypes, {
|
|
|
763
772
|
menuLimit: _propTypes["default"].number,
|
|
764
773
|
rendererName: _propTypes["default"].string,
|
|
765
774
|
renderers: _propTypes["default"].objectOf(_propTypes["default"].func),
|
|
766
|
-
size: _propTypes["default"].oneOf(['sm', 'md', 'lg'])
|
|
775
|
+
size: _propTypes["default"].oneOf(['sm', 'md', 'lg']),
|
|
776
|
+
columnResizing: _propTypes["default"].bool,
|
|
777
|
+
columnWidths: _propTypes["default"].object,
|
|
778
|
+
onColumnWidthChange: _propTypes["default"].func
|
|
767
779
|
});
|
|
768
780
|
PivotTableUI.defaultProps = Object.assign({}, _Utilities.PivotData.defaultProps, {
|
|
769
781
|
onChange: function onChange() {},
|
|
@@ -773,7 +785,9 @@ PivotTableUI.defaultProps = Object.assign({}, _Utilities.PivotData.defaultProps,
|
|
|
773
785
|
unusedOrientationCutoff: 85,
|
|
774
786
|
menuLimit: 500,
|
|
775
787
|
rendererName: 'Table',
|
|
776
|
-
renderers: _TableRenderers["default"]
|
|
788
|
+
renderers: _TableRenderers["default"],
|
|
789
|
+
columnResizing: false,
|
|
790
|
+
columnWidths: {}
|
|
777
791
|
});
|
|
778
792
|
var _default = exports["default"] = PivotTableUI;
|
|
779
793
|
//# sourceMappingURL=PivotTableUI.js.map
|
package/dist/PivotTableUI.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PivotTableUI.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_Utilities","_PivotTable","_TableRenderers","_usePivot2","_reactDraggable","_core","_sortable","_utilities","_excluded","e","__esModule","t","WeakMap","r","n","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","Symbol","iterator","Array","from","isArray","_arrayLikeToArray","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","toPrimitive","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","_extends","assign","bind","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","a","toString","slice","constructor","name","test","l","u","next","done","DraggableAttribute","exports","React","forwardRef","_ref","ref","attrValues","valueFilter","sorter","menuLimit","setValuesInFilter","addValuesToFilter","moveFilterBoxToTop","removeValuesFromFilter","zIndex","dragHandleProps","isDragging","_useState","useState","_useState2","open","setOpen","_useState3","_useState4","filterText","setFilterText","nodeRef","useRef","toggleValue","matchesFilter","x","toLowerCase","trim","includes","selectOnly","stopPropagation","y","getFilterBox","showMenu","values","shown","sort","createElement","handle","className","style","display","cursor","onClick","type","placeholder","onChange","target","role","map","key","toggleFilterBox","filtered","opacity","displayName","SortableAttribute","_ref2","id","rest","_useSortable","useSortable","attributes","listeners","setNodeRef","transform","transition","CSS","Transform","Dropdown","_ref3","_ref3$zIndex","_ref3$open","toggle","current","_ref3$values","setValue","DnDCell","_ref4","items","classes","state","sorters","isHorizontal","strategy","horizontalListSortingStrategy","verticalListSortingStrategy","SortableContext","listStyle","padding","margin","getSort","zIndices","maxZIndex","PivotTableUI","props","_aggregators$aggregat","_aggregators$aggregat2","_usePivot","usePivot","pivotProps","pivotState","actions","_useState5","openDropdown","_useState6","uiState","setUiState","_useState7","_useState8","activeId","setActiveId","useCallback","attribute","s","_pivotProps$rows","rows","_pivotProps$cols","cols","_pivotProps$vals","vals","_pivotProps$aggregato","aggregatorName","_pivotProps$aggregato2","aggregators","defaultAggregators","_pivotProps$rendererN","rendererName","_pivotProps$renderers","renderers","TableRenderers","_pivotProps$valueFilt","_pivotProps$sorters","_pivotProps$menuLimit","_pivotProps$unusedOri","unusedOrientationCutoff","_pivotProps$hiddenAtt","hiddenAttributes","_pivotProps$hiddenFro","hiddenFromAggregators","_pivotProps$hiddenFro2","hiddenFromDragDrop","_pivotProps$paginatio","pagination","_pivotProps$page","page","_pivotProps$pageSize","pageSize","_pivotProps$rowOrder","rowOrder","_pivotProps$colOrder","colOrder","_pivotProps$size","size","unusedAttrs","sortAs","unusedOrder","unusedLength","reduce","horizUnused","colAttrs","rowAttrs","getZoneOfItem","getListByZone","zone","getUpdaterByZone","updateProp","order","setUnusedOrder","sensors","useSensors","useSensor","PointerSensor","activationConstraint","distance","handleDragStart","_ref5","active","handleDragOver","_ref6","_over$data$current$so","_over$data","over","activeZone","overZone","data","sortable","containerId","activeList","overList","activeIndex","overIndex","splice","insertAt","handleDragEnd","_ref7","_over$data$current$so2","_over$data2","list","oldIndex","newIndex","arrayMove","isOpen","dropdown","numValsAllowed","numInputs","actualRendererName","sortIcons","key_a_to_z","rowSymbol","colSymbol","value_a_to_z","value_z_to_a","combinedState","sharedCellProps","componentProps","materializedInput","derivedAttributes","cellPipeline","virtualization","renderFooter","pivotData","PivotData","totalPivotRows","getRowKeys","totalRecords","totalPages","Math","ceil","disabled","min","max","val","parseInt","DndContext","collisionDetection","closestCorners","onDragStart","onDragOver","onDragEnd","concat","theme","Fragment","v","fill","_","newVals","DragOverlay","propTypes","PropTypes","func","isRequired","arrayOf","string","number","objectOf","oneOf","defaultProps","_default"],"sources":["../src/PivotTableUI.jsx"],"sourcesContent":["import React, { useState, useRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { PivotData, sortAs, getSort, aggregators as defaultAggregators } from './Utilities';\nimport PivotTable from './PivotTable';\nimport TableRenderers from './TableRenderers';\nimport { usePivot } from './hooks/usePivot';\nimport Draggable from 'react-draggable';\n\nimport {\n DndContext,\n DragOverlay,\n closestCorners,\n PointerSensor,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport {\n SortableContext,\n useSortable,\n horizontalListSortingStrategy,\n verticalListSortingStrategy,\n arrayMove,\n} from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\n\n// ─── DraggableAttribute ────────────────────────────────────────────────────────\n\nexport const DraggableAttribute = React.forwardRef(\n (\n {\n name,\n attrValues,\n valueFilter,\n sorter,\n menuLimit,\n setValuesInFilter,\n addValuesToFilter,\n moveFilterBoxToTop,\n removeValuesFromFilter,\n zIndex,\n dragHandleProps,\n isDragging,\n },\n ref\n ) => {\n const [open, setOpen] = useState(false);\n const [filterText, setFilterText] = useState('');\n const nodeRef = useRef(null);\n\n const toggleValue = value => {\n if (value in valueFilter) {\n removeValuesFromFilter(name, [value]);\n } else {\n addValuesToFilter(name, [value]);\n }\n };\n\n const matchesFilter = x =>\n x.toLowerCase().trim().includes(filterText.toLowerCase().trim());\n\n const selectOnly = (e, value) => {\n e.stopPropagation();\n setValuesInFilter(\n name,\n Object.keys(attrValues).filter(y => y !== value)\n );\n };\n\n const getFilterBox = () => {\n const showMenu = Object.keys(attrValues).length < menuLimit;\n const values = Object.keys(attrValues);\n const shown = values.filter(matchesFilter).sort(sorter);\n\n return (\n <Draggable handle=\".pvtDragHandle\" nodeRef={nodeRef}>\n <div\n ref={nodeRef}\n className=\"pvtFilterBox\"\n style={{ display: 'block', cursor: 'initial', zIndex }}\n onClick={() => moveFilterBoxToTop(name)}\n >\n <a onClick={() => setOpen(false)} className=\"pvtCloseX\">×</a>\n <span className=\"pvtDragHandle\">☰</span>\n <h4>{name}</h4>\n\n {showMenu || <p>(too many values to show)</p>}\n\n {showMenu && (\n <p>\n <input\n type=\"text\"\n placeholder=\"Filter values\"\n className=\"pvtSearch\"\n value={filterText}\n onChange={e => setFilterText(e.target.value)}\n />\n <br />\n <a\n role=\"button\"\n className=\"pvtButton\"\n onClick={() =>\n removeValuesFromFilter(\n name,\n Object.keys(attrValues).filter(matchesFilter)\n )\n }\n >\n Select {values.length === shown.length ? 'All' : shown.length}\n </a>{' '}\n <a\n role=\"button\"\n className=\"pvtButton\"\n onClick={() =>\n addValuesToFilter(\n name,\n Object.keys(attrValues).filter(matchesFilter)\n )\n }\n >\n Deselect {values.length === shown.length ? 'All' : shown.length}\n </a>\n </p>\n )}\n\n {showMenu && (\n <div className=\"pvtCheckContainer\">\n {shown.map(x => (\n <p\n key={x}\n onClick={() => toggleValue(x)}\n className={x in valueFilter ? '' : 'selected'}\n >\n <a className=\"pvtOnly\" onClick={e => selectOnly(e, x)}>only</a>\n <a className=\"pvtOnlySpacer\"> </a>\n {x === '' ? <em>null</em> : x}\n </p>\n ))}\n </div>\n )}\n </div>\n </Draggable>\n );\n };\n\n const toggleFilterBox = () => {\n setOpen(o => !o);\n moveFilterBoxToTop(name);\n };\n\n const filtered = Object.keys(valueFilter).length !== 0 ? 'pvtFilteredAttribute' : '';\n\n return (\n <li\n ref={ref}\n data-id={name}\n style={{ opacity: isDragging ? 0.4 : 1 }}\n >\n <span className={'pvtAttr ' + filtered} {...dragHandleProps}>\n {name}\n <span\n className=\"pvtTriangle\"\n onClick={e => { e.stopPropagation(); toggleFilterBox(); }}\n >\n {' '}▾\n </span>\n </span>\n {open ? getFilterBox() : null}\n </li>\n );\n }\n);\nDraggableAttribute.displayName = 'DraggableAttribute';\n\nconst SortableAttribute = ({ id, ...rest }) => {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({ id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n return (\n <DraggableAttribute\n ref={setNodeRef}\n name={id}\n isDragging={isDragging}\n dragHandleProps={{ ...attributes, ...listeners, style }}\n {...rest}\n />\n );\n};\n\nexport const Dropdown = ({ zIndex = 1, open = false, toggle, current, values = [], setValue }) => (\n <div className=\"pvtDropdown\" style={{ zIndex }}>\n <div\n onClick={e => { e.stopPropagation(); toggle(); }}\n className={'pvtDropdownValue pvtDropdownCurrent ' + (open ? 'pvtDropdownCurrentOpen' : '')}\n role=\"button\"\n >\n <div className=\"pvtDropdownIcon\">{open ? '×' : '▾'}</div>\n {current || <span> </span>}\n </div>\n {open && (\n <div className=\"pvtDropdownMenu\">\n {values.map(r => (\n <div\n key={r}\n role=\"button\"\n onClick={e => {\n e.stopPropagation();\n if (current === r) toggle();\n else { setValue(r); toggle(); }\n }}\n className={'pvtDropdownValue ' + (r === current ? 'pvtDropdownActiveValue' : '')}\n >\n {r}\n </div>\n ))}\n </div>\n )}\n </div>\n);\n\nconst DnDCell = ({\n id,\n items,\n classes,\n state,\n valueFilter,\n sorters,\n menuLimit,\n setValuesInFilter,\n addValuesToFilter,\n moveFilterBoxToTop,\n removeValuesFromFilter,\n isHorizontal,\n}) => {\n const strategy = isHorizontal\n ? horizontalListSortingStrategy\n : verticalListSortingStrategy;\n\n return (\n <td className={classes}>\n <SortableContext id={id} items={items} strategy={strategy}>\n <ul style={{ listStyle: 'none', padding: 0, margin: 0 }}>\n {items.map(x => (\n <SortableAttribute\n key={x}\n id={x}\n attrValues={state.attrValues[x] || {}}\n valueFilter={valueFilter[x] || {}}\n sorter={getSort(sorters, x)}\n menuLimit={menuLimit}\n setValuesInFilter={setValuesInFilter}\n addValuesToFilter={addValuesToFilter}\n moveFilterBoxToTop={moveFilterBoxToTop}\n removeValuesFromFilter={removeValuesFromFilter}\n zIndex={state.zIndices[x] || state.maxZIndex}\n />\n ))}\n </ul>\n </SortableContext>\n </td>\n );\n};\n\nconst PivotTableUI = props => {\n // ─── Headless Core: toda la lógica de datos y props fluye a través del Core ───\n const { props: pivotProps, state: pivotState, actions } = usePivot(props);\n\n // ─── Estado local solo para UI (no pertenece al Core) ─────────────────────────\n const [uiState, setUiState] = useState({\n zIndices: {},\n maxZIndex: 1000,\n openDropdown: false,\n });\n const [activeId, setActiveId] = useState(null);\n\n // ─── Helpers de UI local ──────────────────────────────────────────────────────\n const moveFilterBoxToTop = useCallback(attribute => {\n setUiState(s => ({\n ...s,\n maxZIndex: s.maxZIndex + 1,\n zIndices: { ...s.zIndices, [attribute]: s.maxZIndex + 1 },\n }));\n }, []);\n\n // ─── Derivados desde el Core ──────────────────────────────────────────────────\n const {\n rows = [],\n cols = [],\n vals = [],\n aggregatorName = 'Count',\n aggregators = defaultAggregators,\n rendererName = 'Table',\n renderers = TableRenderers,\n valueFilter = {},\n sorters = {},\n menuLimit = 500,\n unusedOrientationCutoff = 85,\n hiddenAttributes = [],\n hiddenFromAggregators = [],\n hiddenFromDragDrop = [],\n pagination = false,\n page = 1,\n pageSize = 20,\n rowOrder = 'key_a_to_z',\n colOrder = 'key_a_to_z',\n size = 'lg',\n } = pivotProps;\n\n const unusedAttrs = Object.keys(pivotState.attrValues)\n .filter(e => e && e.trim() !== '' && !rows.includes(e) && !cols.includes(e) && !hiddenAttributes.includes(e) && !hiddenFromDragDrop.includes(e))\n .sort(sortAs(pivotState.unusedOrder || []));\n\n const unusedLength = unusedAttrs.reduce((r, e) => r + e.length, 0);\n const horizUnused = unusedLength < unusedOrientationCutoff;\n\n const colAttrs = cols.filter(e => e && e.trim() !== '' && !hiddenAttributes.includes(e) && !hiddenFromDragDrop.includes(e));\n const rowAttrs = rows.filter(e => e && e.trim() !== '' && !hiddenAttributes.includes(e) && !hiddenFromDragDrop.includes(e));\n\n // ─── DnD Zones ────────────────────────────────────────────────────────────────\n const getZoneOfItem = id => {\n if (rowAttrs.includes(id)) return 'rows';\n if (colAttrs.includes(id)) return 'cols';\n if (unusedAttrs.includes(id)) return 'unused';\n return null;\n };\n\n const getListByZone = zone => {\n if (zone === 'rows') return rowAttrs;\n if (zone === 'cols') return colAttrs;\n if (zone === 'unused') return unusedAttrs;\n return [];\n };\n\n const getUpdaterByZone = zone => {\n if (zone === 'rows') return value => actions.updateProp('rows', value);\n if (zone === 'cols') return value => actions.updateProp('cols', value);\n if (zone === 'unused') return order => actions.setUnusedOrder(order);\n return () => { };\n };\n\n const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 5 } }));\n\n const handleDragStart = ({ active }) => setActiveId(active.id);\n\n const handleDragOver = ({ active, over }) => {\n if (!over) return;\n const activeZone = getZoneOfItem(active.id);\n const overZone = over.data?.current?.sortable?.containerId ?? getZoneOfItem(over.id);\n if (!activeZone || !overZone || activeZone === overZone) return;\n const activeList = [...getListByZone(activeZone)];\n const overList = [...getListByZone(overZone)];\n const activeIndex = activeList.indexOf(active.id);\n const overIndex = overList.indexOf(over.id);\n if (activeIndex === -1) return;\n if (overList.includes(active.id)) return;\n activeList.splice(activeIndex, 1);\n const insertAt = overIndex >= 0 ? overIndex : overList.length;\n overList.splice(insertAt, 0, active.id);\n getUpdaterByZone(activeZone)(activeList);\n getUpdaterByZone(overZone)(overList);\n };\n\n const handleDragEnd = ({ active, over }) => {\n setActiveId(null);\n if (!over) return;\n const activeZone = getZoneOfItem(active.id);\n const overZone = over.data?.current?.sortable?.containerId ?? getZoneOfItem(over.id);\n if (!activeZone || !overZone) return;\n if (activeZone === overZone) {\n const list = getListByZone(activeZone);\n const oldIndex = list.indexOf(active.id);\n const newIndex = list.indexOf(over.id);\n if (oldIndex !== newIndex) getUpdaterByZone(activeZone)(arrayMove(list, oldIndex, newIndex));\n }\n };\n\n // ─── Dropdowns y controles ────────────────────────────────────────────────────\n const isOpen = dropdown => uiState.openDropdown === dropdown;\n const numValsAllowed = (aggregators[aggregatorName]?.([])?.()?.numInputs) || 0;\n const actualRendererName = (rendererName in renderers) ? rendererName : Object.keys(renderers)[0];\n\n const sortIcons = {\n key_a_to_z: { rowSymbol: '↕', colSymbol: '↔', next: 'value_a_to_z' },\n value_a_to_z: { rowSymbol: '↓', colSymbol: '→', next: 'value_z_to_a' },\n value_z_to_a: { rowSymbol: '↑', colSymbol: '←', next: 'key_a_to_z' },\n };\n\n // Estado combinado para DnDCell (necesita zIndices del UI local + attrValues del Core)\n const combinedState = {\n attrValues: pivotState.attrValues,\n zIndices: uiState.zIndices,\n maxZIndex: uiState.maxZIndex,\n };\n\n const sharedCellProps = {\n state: combinedState,\n valueFilter,\n sorters,\n menuLimit,\n setValuesInFilter: actions.setValuesInFilter,\n addValuesToFilter: actions.addValuesToFilter,\n moveFilterBoxToTop,\n removeValuesFromFilter: actions.removeValuesFromFilter,\n };\n\n const componentProps = {\n data: pivotState.materializedInput,\n rows,\n cols,\n vals,\n aggregatorName,\n aggregators,\n rendererName,\n renderers,\n valueFilter,\n sorters,\n menuLimit,\n unusedOrientationCutoff,\n hiddenAttributes,\n hiddenFromAggregators,\n hiddenFromDragDrop,\n pagination,\n page,\n pageSize,\n rowOrder,\n colOrder,\n derivedAttributes: pivotProps.derivedAttributes,\n cellPipeline: pivotProps.cellPipeline,\n virtualization: pivotProps.virtualization,\n };\n\n const renderFooter = () => {\n const pivotData = new PivotData(componentProps);\n const totalPivotRows = pivotData.getRowKeys().length;\n const totalRecords = pivotState.materializedInput.length;\n const totalPages = Math.ceil(totalPivotRows / pageSize);\n return (\n <div className=\"pvtFooter\">\n <div className=\"pvtFooterInfo\">Total registros: {totalRecords} | Filas: {totalPivotRows}</div>\n <div className=\"pvtFooterPagination\">\n <button className=\"pvtButton\" disabled={page <= 1} onClick={() => actions.updateProp('page', 1)}>«</button>\n <button className=\"pvtButton\" disabled={page <= 1} onClick={() => actions.updateProp('page', page - 1)}>‹</button>\n <span>Página <input type=\"number\" className=\"pvtPageInput\" value={page} min={1} max={totalPages} onChange={e => {\n const val = parseInt(e.target.value, 10);\n if (val > 0 && val <= totalPages) actions.updateProp('page', val);\n }} /> de {totalPages}</span>\n <button className=\"pvtButton\" disabled={page >= totalPages} onClick={() => actions.updateProp('page', page + 1)}>›</button>\n <button className=\"pvtButton\" disabled={page >= totalPages} onClick={() => actions.updateProp('page', totalPages)}>»</button>\n <select className=\"pvtPageSize\" value={pageSize} onChange={e => {\n actions.updateProp('pageSize', parseInt(e.target.value, 10));\n actions.updateProp('page', 1);\n }}>{[10, 20, 50, 100].map(n => <option key={n} value={n}>{n} / pág</option>)}</select>\n </div>\n </div>\n );\n };\n\n return (\n <DndContext sensors={sensors} collisionDetection={closestCorners} onDragStart={handleDragStart} onDragOver={handleDragOver} onDragEnd={handleDragEnd}>\n <table className={`pvtUi pvt-theme-${props.theme || 'default'} pvt-size-${size || 'lg'}`}>\n <tbody onClick={() => setUiState(s => ({ ...s, openDropdown: false }))}>\n {horizUnused ? (\n <>\n <tr>\n <td className=\"pvtRenderers\">\n <Dropdown current={actualRendererName} values={Object.keys(renderers)} open={isOpen('renderer')} zIndex={isOpen('renderer') ? uiState.maxZIndex + 1 : 1} toggle={() => setUiState(s => ({ ...s, openDropdown: isOpen('renderer') ? false : 'renderer' }))} setValue={v => actions.updateProp('rendererName', v)} />\n </td>\n <DnDCell id=\"unused\" items={unusedAttrs} classes={`pvtAxisContainer pvtUnused pvtHorizList`} isHorizontal={true} {...sharedCellProps} />\n </tr>\n <tr>\n <td className=\"pvtVals\">\n <Dropdown current={aggregatorName} values={Object.keys(aggregators)} open={isOpen('aggregators')} zIndex={isOpen('aggregators') ? uiState.maxZIndex + 1 : 1} toggle={() => setUiState(s => ({ ...s, openDropdown: isOpen('aggregators') ? false : 'aggregators' }))} setValue={v => actions.updateProp('aggregatorName', v)} />\n <a role=\"button\" className=\"pvtRowOrder\" onClick={() => actions.updateProp('rowOrder', sortIcons[rowOrder].next)}>{sortIcons[rowOrder].rowSymbol}</a>\n <a role=\"button\" className=\"pvtColOrder\" onClick={() => actions.updateProp('colOrder', sortIcons[colOrder].next)}>{sortIcons[colOrder].colSymbol}</a>\n {numValsAllowed > 0 && <br />}\n {new Array(numValsAllowed).fill(null).map((_, i) => [\n <Dropdown key={i} current={vals[i]} values={Object.keys(pivotState.attrValues).filter(e => !hiddenAttributes.includes(e) && !hiddenFromAggregators.includes(e))} open={isOpen(`val${i}`)} zIndex={isOpen(`val${i}`) ? uiState.maxZIndex + 1 : 1} toggle={() => setUiState(s => ({ ...s, openDropdown: isOpen(`val${i}`) ? false : `val${i}` }))} setValue={value => { const newVals = [...vals]; newVals[i] = value; actions.updateProp('vals', newVals); }} />,\n i + 1 !== numValsAllowed ? <br key={`br${i}`} /> : null,\n ])}\n </td>\n <DnDCell id=\"cols\" items={colAttrs} classes=\"pvtAxisContainer pvtHorizList pvtCols\" isHorizontal={true} {...sharedCellProps} />\n </tr>\n <tr>\n <DnDCell id=\"rows\" items={rowAttrs} classes=\"pvtAxisContainer pvtVertList pvtRows\" isHorizontal={false} {...sharedCellProps} />\n <td className=\"pvtOutput\">\n <PivotTable {...componentProps} />\n {pagination && renderFooter()}\n </td>\n </tr>\n </>\n ) : (\n <>\n <tr>\n <td className=\"pvtRenderers\">\n <Dropdown current={actualRendererName} values={Object.keys(renderers)} open={isOpen('renderer')} zIndex={isOpen('renderer') ? uiState.maxZIndex + 1 : 1} toggle={() => setUiState(s => ({ ...s, openDropdown: isOpen('renderer') ? false : 'renderer' }))} setValue={v => actions.updateProp('rendererName', v)} />\n </td>\n <td className=\"pvtVals\">\n <Dropdown current={aggregatorName} values={Object.keys(aggregators)} open={isOpen('aggregators')} zIndex={isOpen('aggregators') ? uiState.maxZIndex + 1 : 1} toggle={() => setUiState(s => ({ ...s, openDropdown: isOpen('aggregators') ? false : 'aggregators' }))} setValue={v => actions.updateProp('aggregatorName', v)} />\n <a role=\"button\" className=\"pvtRowOrder\" onClick={() => actions.updateProp('rowOrder', sortIcons[rowOrder].next)}>{sortIcons[rowOrder].rowSymbol}</a>\n <a role=\"button\" className=\"pvtColOrder\" onClick={() => actions.updateProp('colOrder', sortIcons[colOrder].next)}>{sortIcons[colOrder].colSymbol}</a>\n {numValsAllowed > 0 && <br />}\n {new Array(numValsAllowed).fill(null).map((_, i) => [\n <Dropdown key={i} current={vals[i]} values={Object.keys(pivotState.attrValues).filter(e => !hiddenAttributes.includes(e) && !hiddenFromAggregators.includes(e))} open={isOpen(`val${i}`)} zIndex={isOpen(`val${i}`) ? uiState.maxZIndex + 1 : 1} toggle={() => setUiState(s => ({ ...s, openDropdown: isOpen(`val${i}`) ? false : `val${i}` }))} setValue={value => { const newVals = [...vals]; newVals[i] = value; actions.updateProp('vals', newVals); }} />,\n i + 1 !== numValsAllowed ? <br key={`br${i}`} /> : null,\n ])}\n </td>\n <DnDCell id=\"cols\" items={colAttrs} classes=\"pvtAxisContainer pvtHorizList pvtCols\" isHorizontal={true} {...sharedCellProps} />\n </tr>\n <tr>\n <DnDCell id=\"unused\" items={unusedAttrs} classes={`pvtAxisContainer pvtUnused pvtVertList`} isHorizontal={false} {...sharedCellProps} />\n <DnDCell id=\"rows\" items={rowAttrs} classes=\"pvtAxisContainer pvtVertList pvtRows\" isHorizontal={false} {...sharedCellProps} />\n <td className=\"pvtOutput\">\n <PivotTable {...componentProps} />\n {pagination && renderFooter()}\n </td>\n </tr>\n </>\n )}\n </tbody>\n </table>\n <DragOverlay>{activeId ? <ul style={{ listStyle: 'none', padding: 0, margin: 0 }}><li><span className=\"pvtAttr\">{activeId}</span></li></ul> : null}</DragOverlay>\n </DndContext>\n );\n};\n\nPivotTableUI.propTypes = Object.assign({}, PivotData.propTypes, {\n onChange: PropTypes.func.isRequired,\n hiddenAttributes: PropTypes.arrayOf(PropTypes.string),\n hiddenFromAggregators: PropTypes.arrayOf(PropTypes.string),\n hiddenFromDragDrop: PropTypes.arrayOf(PropTypes.string),\n unusedOrientationCutoff: PropTypes.number,\n menuLimit: PropTypes.number,\n rendererName: PropTypes.string,\n renderers: PropTypes.objectOf(PropTypes.func),\n size: PropTypes.oneOf(['sm', 'md', 'lg']),\n});\n\nPivotTableUI.defaultProps = Object.assign({}, PivotData.defaultProps, {\n onChange: () => { },\n hiddenAttributes: [],\n hiddenFromAggregators: [],\n hiddenFromDragDrop: [],\n unusedOrientationCutoff: 85,\n menuLimit: 500,\n rendererName: 'Table',\n renderers: TableRenderers,\n});\n\nexport default PivotTableUI;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"PivotTableUI.js","names":["_typeof","o","Symbol","iterator","constructor","prototype","Object","defineProperty","exports","value","Dropdown","DraggableAttribute","_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_Utilities","_PivotTable","_TableRenderers","_usePivot2","_reactDraggable","_core","_sortable","_utilities","_excluded","e","__esModule","t","WeakMap","r","n","i","f","__proto__","has","get","set","_t","hasOwnProperty","call","getOwnPropertyDescriptor","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","Array","from","isArray","_arrayLikeToArray","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","_toPrimitive","toPrimitive","String","Number","_objectWithoutProperties","_objectWithoutPropertiesLoose","indexOf","propertyIsEnumerable","_extends","assign","bind","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","a","toString","slice","name","test","l","u","next","done","React","forwardRef","_ref","ref","attrValues","valueFilter","sorter","menuLimit","setValuesInFilter","addValuesToFilter","moveFilterBoxToTop","removeValuesFromFilter","zIndex","dragHandleProps","isDragging","_useState","useState","_useState2","open","setOpen","_useState3","_useState4","filterText","setFilterText","nodeRef","useRef","toggleValue","matchesFilter","x","toLowerCase","trim","includes","selectOnly","stopPropagation","y","getFilterBox","showMenu","values","shown","sort","createElement","handle","className","style","display","cursor","onClick","type","placeholder","onChange","target","role","map","key","toggleFilterBox","filtered","opacity","displayName","SortableAttribute","_ref2","id","rest","_useSortable","useSortable","attributes","listeners","setNodeRef","transform","transition","CSS","Transform","_ref3","_ref3$zIndex","_ref3$open","toggle","current","_ref3$values","setValue","DnDCell","_ref4","items","classes","state","sorters","isHorizontal","strategy","horizontalListSortingStrategy","verticalListSortingStrategy","SortableContext","listStyle","padding","margin","getSort","zIndices","maxZIndex","PivotTableUI","props","_aggregators$aggregat","_aggregators$aggregat2","_usePivot","usePivot","pivotProps","pivotState","actions","_useState5","openDropdown","_useState6","uiState","setUiState","_useState7","_useState8","activeId","setActiveId","useCallback","attribute","s","_pivotProps$rows","rows","_pivotProps$cols","cols","_pivotProps$vals","vals","_pivotProps$aggregato","aggregatorName","_pivotProps$aggregato2","aggregators","defaultAggregators","_pivotProps$rendererN","rendererName","_pivotProps$renderers","renderers","TableRenderers","_pivotProps$valueFilt","_pivotProps$sorters","_pivotProps$menuLimit","_pivotProps$unusedOri","unusedOrientationCutoff","_pivotProps$hiddenAtt","hiddenAttributes","_pivotProps$hiddenFro","hiddenFromAggregators","_pivotProps$hiddenFro2","hiddenFromDragDrop","_pivotProps$paginatio","pagination","_pivotProps$page","page","_pivotProps$pageSize","pageSize","_pivotProps$rowOrder","rowOrder","_pivotProps$colOrder","colOrder","_pivotProps$size","size","_pivotProps$columnRes","columnResizing","_pivotProps$columnWid","columnWidths","onColumnWidthChange","unusedAttrs","sortAs","unusedOrder","unusedLength","reduce","horizUnused","colAttrs","rowAttrs","getZoneOfItem","getListByZone","zone","getUpdaterByZone","updateProp","order","setUnusedOrder","sensors","useSensors","useSensor","PointerSensor","activationConstraint","distance","handleDragStart","_ref5","active","handleDragOver","_ref6","_over$data$current$so","_over$data","over","activeZone","overZone","data","sortable","containerId","activeList","overList","activeIndex","overIndex","splice","insertAt","handleDragEnd","_ref7","_over$data$current$so2","_over$data2","list","oldIndex","newIndex","arrayMove","isOpen","dropdown","numValsAllowed","numInputs","actualRendererName","sortIcons","key_a_to_z","rowSymbol","colSymbol","value_a_to_z","value_z_to_a","combinedState","sharedCellProps","componentProps","materializedInput","derivedAttributes","cellPipeline","virtualization","renderFooter","pivotData","PivotData","totalPivotRows","getRowKeys","totalRecords","totalPages","Math","ceil","disabled","min","max","val","parseInt","DndContext","collisionDetection","closestCorners","onDragStart","onDragOver","onDragEnd","concat","theme","Fragment","v","fill","_","newVals","DragOverlay","propTypes","PropTypes","func","isRequired","arrayOf","string","number","objectOf","oneOf","bool","object","defaultProps","_default"],"sources":["../src/PivotTableUI.jsx"],"sourcesContent":["\"use client\";\n\nimport React, { useState, useRef, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { PivotData, sortAs, getSort, aggregators as defaultAggregators } from './Utilities';\nimport PivotTable from './PivotTable';\nimport TableRenderers from './TableRenderers';\nimport { usePivot } from './hooks/usePivot';\nimport Draggable from 'react-draggable';\n\nimport {\n DndContext,\n DragOverlay,\n closestCorners,\n PointerSensor,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport {\n SortableContext,\n useSortable,\n horizontalListSortingStrategy,\n verticalListSortingStrategy,\n arrayMove,\n} from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\n\n// ─── DraggableAttribute ────────────────────────────────────────────────────────\n\nexport const DraggableAttribute = React.forwardRef(\n (\n {\n name,\n attrValues,\n valueFilter,\n sorter,\n menuLimit,\n setValuesInFilter,\n addValuesToFilter,\n moveFilterBoxToTop,\n removeValuesFromFilter,\n zIndex,\n dragHandleProps,\n isDragging,\n },\n ref\n ) => {\n const [open, setOpen] = useState(false);\n const [filterText, setFilterText] = useState('');\n const nodeRef = useRef(null);\n\n const toggleValue = value => {\n if (value in valueFilter) {\n removeValuesFromFilter(name, [value]);\n } else {\n addValuesToFilter(name, [value]);\n }\n };\n\n const matchesFilter = x =>\n x.toLowerCase().trim().includes(filterText.toLowerCase().trim());\n\n const selectOnly = (e, value) => {\n e.stopPropagation();\n setValuesInFilter(\n name,\n Object.keys(attrValues).filter(y => y !== value)\n );\n };\n\n const getFilterBox = () => {\n const showMenu = Object.keys(attrValues).length < menuLimit;\n const values = Object.keys(attrValues);\n const shown = values.filter(matchesFilter).sort(sorter);\n\n return (\n <Draggable handle=\".pvtDragHandle\" nodeRef={nodeRef}>\n <div\n ref={nodeRef}\n className=\"pvtFilterBox\"\n style={{ display: 'block', cursor: 'initial', zIndex }}\n onClick={() => moveFilterBoxToTop(name)}\n >\n <a onClick={() => setOpen(false)} className=\"pvtCloseX\">×</a>\n <span className=\"pvtDragHandle\">☰</span>\n <h4>{name}</h4>\n\n {showMenu || <p>(too many values to show)</p>}\n\n {showMenu && (\n <p>\n <input\n type=\"text\"\n placeholder=\"Filter values\"\n className=\"pvtSearch\"\n value={filterText}\n onChange={e => setFilterText(e.target.value)}\n />\n <br />\n <a\n role=\"button\"\n className=\"pvtButton\"\n onClick={() =>\n removeValuesFromFilter(\n name,\n Object.keys(attrValues).filter(matchesFilter)\n )\n }\n >\n Select {values.length === shown.length ? 'All' : shown.length}\n </a>{' '}\n <a\n role=\"button\"\n className=\"pvtButton\"\n onClick={() =>\n addValuesToFilter(\n name,\n Object.keys(attrValues).filter(matchesFilter)\n )\n }\n >\n Deselect {values.length === shown.length ? 'All' : shown.length}\n </a>\n </p>\n )}\n\n {showMenu && (\n <div className=\"pvtCheckContainer\">\n {shown.map(x => (\n <p\n key={x}\n onClick={() => toggleValue(x)}\n className={x in valueFilter ? '' : 'selected'}\n >\n <a className=\"pvtOnly\" onClick={e => selectOnly(e, x)}>only</a>\n <a className=\"pvtOnlySpacer\"> </a>\n {x === '' ? <em>null</em> : x}\n </p>\n ))}\n </div>\n )}\n </div>\n </Draggable>\n );\n };\n\n const toggleFilterBox = () => {\n setOpen(o => !o);\n moveFilterBoxToTop(name);\n };\n\n const filtered = Object.keys(valueFilter).length !== 0 ? 'pvtFilteredAttribute' : '';\n\n return (\n <li\n ref={ref}\n data-id={name}\n style={{ opacity: isDragging ? 0.4 : 1 }}\n >\n <span className={'pvtAttr ' + filtered} {...dragHandleProps}>\n {name}\n <span\n className=\"pvtTriangle\"\n onClick={e => { e.stopPropagation(); toggleFilterBox(); }}\n >\n {' '}▾\n </span>\n </span>\n {open ? getFilterBox() : null}\n </li>\n );\n }\n);\nDraggableAttribute.displayName = 'DraggableAttribute';\n\nconst SortableAttribute = ({ id, ...rest }) => {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({ id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n return (\n <DraggableAttribute\n ref={setNodeRef}\n name={id}\n isDragging={isDragging}\n dragHandleProps={{ ...attributes, ...listeners, style }}\n {...rest}\n />\n );\n};\n\nexport const Dropdown = ({ zIndex = 1, open = false, toggle, current, values = [], setValue }) => (\n <div className=\"pvtDropdown\" style={{ zIndex }}>\n <div\n onClick={e => { e.stopPropagation(); toggle(); }}\n className={'pvtDropdownValue pvtDropdownCurrent ' + (open ? 'pvtDropdownCurrentOpen' : '')}\n role=\"button\"\n >\n <div className=\"pvtDropdownIcon\">{open ? '×' : '▾'}</div>\n {current || <span> </span>}\n </div>\n {open && (\n <div className=\"pvtDropdownMenu\">\n {values.map(r => (\n <div\n key={r}\n role=\"button\"\n onClick={e => {\n e.stopPropagation();\n if (current === r) toggle();\n else { setValue(r); toggle(); }\n }}\n className={'pvtDropdownValue ' + (r === current ? 'pvtDropdownActiveValue' : '')}\n >\n {r}\n </div>\n ))}\n </div>\n )}\n </div>\n);\n\nconst DnDCell = ({\n id,\n items,\n classes,\n state,\n valueFilter,\n sorters,\n menuLimit,\n setValuesInFilter,\n addValuesToFilter,\n moveFilterBoxToTop,\n removeValuesFromFilter,\n isHorizontal,\n}) => {\n const strategy = isHorizontal\n ? horizontalListSortingStrategy\n : verticalListSortingStrategy;\n\n return (\n <td className={classes}>\n <SortableContext id={id} items={items} strategy={strategy}>\n <ul style={{ listStyle: 'none', padding: 0, margin: 0 }}>\n {items.map(x => (\n <SortableAttribute\n key={x}\n id={x}\n attrValues={state.attrValues[x] || {}}\n valueFilter={valueFilter[x] || {}}\n sorter={getSort(sorters, x)}\n menuLimit={menuLimit}\n setValuesInFilter={setValuesInFilter}\n addValuesToFilter={addValuesToFilter}\n moveFilterBoxToTop={moveFilterBoxToTop}\n removeValuesFromFilter={removeValuesFromFilter}\n zIndex={state.zIndices[x] || state.maxZIndex}\n />\n ))}\n </ul>\n </SortableContext>\n </td>\n );\n};\n\nconst PivotTableUI = props => {\n // ─── Headless Core: toda la lógica de datos y props fluye a través del Core ───\n const { props: pivotProps, state: pivotState, actions } = usePivot(props);\n\n // ─── Estado local solo para UI (no pertenece al Core) ─────────────────────────\n const [uiState, setUiState] = useState({\n zIndices: {},\n maxZIndex: 1000,\n openDropdown: false,\n });\n const [activeId, setActiveId] = useState(null);\n\n // ─── Helpers de UI local ──────────────────────────────────────────────────────\n const moveFilterBoxToTop = useCallback(attribute => {\n setUiState(s => ({\n ...s,\n maxZIndex: s.maxZIndex + 1,\n zIndices: { ...s.zIndices, [attribute]: s.maxZIndex + 1 },\n }));\n }, []);\n\n // ─── Derivados desde el Core ──────────────────────────────────────────────────\n const {\n rows = [],\n cols = [],\n vals = [],\n aggregatorName = 'Count',\n aggregators = defaultAggregators,\n rendererName = 'Table',\n renderers = TableRenderers,\n valueFilter = {},\n sorters = {},\n menuLimit = 500,\n unusedOrientationCutoff = 85,\n hiddenAttributes = [],\n hiddenFromAggregators = [],\n hiddenFromDragDrop = [],\n pagination = false,\n page = 1,\n pageSize = 20,\n rowOrder = 'key_a_to_z',\n colOrder = 'key_a_to_z',\n size = 'lg',\n columnResizing = false,\n columnWidths = {},\n onColumnWidthChange,\n } = pivotProps;\n\n const unusedAttrs = Object.keys(pivotState.attrValues)\n .filter(e => e && e.trim() !== '' && !rows.includes(e) && !cols.includes(e) && !hiddenAttributes.includes(e) && !hiddenFromDragDrop.includes(e))\n .sort(sortAs(pivotState.unusedOrder || []));\n\n const unusedLength = unusedAttrs.reduce((r, e) => r + e.length, 0);\n const horizUnused = unusedLength < unusedOrientationCutoff;\n\n const colAttrs = cols.filter(e => e && e.trim() !== '' && !hiddenAttributes.includes(e) && !hiddenFromDragDrop.includes(e));\n const rowAttrs = rows.filter(e => e && e.trim() !== '' && !hiddenAttributes.includes(e) && !hiddenFromDragDrop.includes(e));\n\n // ─── DnD Zones ────────────────────────────────────────────────────────────────\n const getZoneOfItem = id => {\n if (rowAttrs.includes(id)) return 'rows';\n if (colAttrs.includes(id)) return 'cols';\n if (unusedAttrs.includes(id)) return 'unused';\n return null;\n };\n\n const getListByZone = zone => {\n if (zone === 'rows') return rowAttrs;\n if (zone === 'cols') return colAttrs;\n if (zone === 'unused') return unusedAttrs;\n return [];\n };\n\n const getUpdaterByZone = zone => {\n if (zone === 'rows') return value => actions.updateProp('rows', value);\n if (zone === 'cols') return value => actions.updateProp('cols', value);\n if (zone === 'unused') return order => actions.setUnusedOrder(order);\n return () => { };\n };\n\n const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 5 } }));\n\n const handleDragStart = ({ active }) => setActiveId(active.id);\n\n const handleDragOver = ({ active, over }) => {\n if (!over) return;\n const activeZone = getZoneOfItem(active.id);\n const overZone = over.data?.current?.sortable?.containerId ?? getZoneOfItem(over.id);\n if (!activeZone || !overZone || activeZone === overZone) return;\n const activeList = [...getListByZone(activeZone)];\n const overList = [...getListByZone(overZone)];\n const activeIndex = activeList.indexOf(active.id);\n const overIndex = overList.indexOf(over.id);\n if (activeIndex === -1) return;\n if (overList.includes(active.id)) return;\n activeList.splice(activeIndex, 1);\n const insertAt = overIndex >= 0 ? overIndex : overList.length;\n overList.splice(insertAt, 0, active.id);\n getUpdaterByZone(activeZone)(activeList);\n getUpdaterByZone(overZone)(overList);\n };\n\n const handleDragEnd = ({ active, over }) => {\n setActiveId(null);\n if (!over) return;\n const activeZone = getZoneOfItem(active.id);\n const overZone = over.data?.current?.sortable?.containerId ?? getZoneOfItem(over.id);\n if (!activeZone || !overZone) return;\n if (activeZone === overZone) {\n const list = getListByZone(activeZone);\n const oldIndex = list.indexOf(active.id);\n const newIndex = list.indexOf(over.id);\n if (oldIndex !== newIndex) getUpdaterByZone(activeZone)(arrayMove(list, oldIndex, newIndex));\n }\n };\n\n // ─── Dropdowns y controles ────────────────────────────────────────────────────\n const isOpen = dropdown => uiState.openDropdown === dropdown;\n const numValsAllowed = (aggregators[aggregatorName]?.([])?.()?.numInputs) || 0;\n const actualRendererName = (rendererName in renderers) ? rendererName : Object.keys(renderers)[0];\n\n const sortIcons = {\n key_a_to_z: { rowSymbol: '↕', colSymbol: '↔', next: 'value_a_to_z' },\n value_a_to_z: { rowSymbol: '↓', colSymbol: '→', next: 'value_z_to_a' },\n value_z_to_a: { rowSymbol: '↑', colSymbol: '←', next: 'key_a_to_z' },\n };\n\n // Estado combinado para DnDCell (necesita zIndices del UI local + attrValues del Core)\n const combinedState = {\n attrValues: pivotState.attrValues,\n zIndices: uiState.zIndices,\n maxZIndex: uiState.maxZIndex,\n };\n\n const sharedCellProps = {\n state: combinedState,\n valueFilter,\n sorters,\n menuLimit,\n setValuesInFilter: actions.setValuesInFilter,\n addValuesToFilter: actions.addValuesToFilter,\n moveFilterBoxToTop,\n removeValuesFromFilter: actions.removeValuesFromFilter,\n };\n\n const componentProps = {\n data: pivotState.materializedInput,\n rows,\n cols,\n vals,\n aggregatorName,\n aggregators,\n rendererName,\n renderers,\n valueFilter,\n sorters,\n menuLimit,\n unusedOrientationCutoff,\n hiddenAttributes,\n hiddenFromAggregators,\n hiddenFromDragDrop,\n pagination,\n page,\n pageSize,\n rowOrder,\n colOrder,\n derivedAttributes: pivotProps.derivedAttributes,\n cellPipeline: pivotProps.cellPipeline,\n virtualization: pivotProps.virtualization,\n columnResizing,\n columnWidths,\n onColumnWidthChange,\n };\n\n const renderFooter = () => {\n const pivotData = new PivotData(componentProps);\n const totalPivotRows = pivotData.getRowKeys().length;\n const totalRecords = pivotState.materializedInput.length;\n const totalPages = Math.ceil(totalPivotRows / pageSize);\n return (\n <div className=\"pvtFooter\">\n <div className=\"pvtFooterInfo\">Total registros: {totalRecords} | Filas: {totalPivotRows}</div>\n <div className=\"pvtFooterPagination\">\n <button className=\"pvtButton\" disabled={page <= 1} onClick={() => actions.updateProp('page', 1)}>«</button>\n <button className=\"pvtButton\" disabled={page <= 1} onClick={() => actions.updateProp('page', page - 1)}>‹</button>\n <span>Página <input type=\"number\" className=\"pvtPageInput\" value={page} min={1} max={totalPages} onChange={e => {\n const val = parseInt(e.target.value, 10);\n if (val > 0 && val <= totalPages) actions.updateProp('page', val);\n }} /> de {totalPages}</span>\n <button className=\"pvtButton\" disabled={page >= totalPages} onClick={() => actions.updateProp('page', page + 1)}>›</button>\n <button className=\"pvtButton\" disabled={page >= totalPages} onClick={() => actions.updateProp('page', totalPages)}>»</button>\n <select className=\"pvtPageSize\" value={pageSize} onChange={e => {\n actions.updateProp('pageSize', parseInt(e.target.value, 10));\n actions.updateProp('page', 1);\n }}>{[10, 20, 50, 100].map(n => <option key={n} value={n}>{n} / pág</option>)}</select>\n </div>\n </div>\n );\n };\n\n return (\n <DndContext sensors={sensors} collisionDetection={closestCorners} onDragStart={handleDragStart} onDragOver={handleDragOver} onDragEnd={handleDragEnd}>\n <table className={`pvtUi pvt-theme-${props.theme || 'default'} pvt-size-${size || 'lg'}`}>\n <tbody onClick={() => setUiState(s => ({ ...s, openDropdown: false }))}>\n {horizUnused ? (\n <>\n <tr>\n <td className=\"pvtRenderers\">\n <Dropdown current={actualRendererName} values={Object.keys(renderers)} open={isOpen('renderer')} zIndex={isOpen('renderer') ? uiState.maxZIndex + 1 : 1} toggle={() => setUiState(s => ({ ...s, openDropdown: isOpen('renderer') ? false : 'renderer' }))} setValue={v => actions.updateProp('rendererName', v)} />\n </td>\n <DnDCell id=\"unused\" items={unusedAttrs} classes={`pvtAxisContainer pvtUnused pvtHorizList`} isHorizontal={true} {...sharedCellProps} />\n </tr>\n <tr>\n <td className=\"pvtVals\">\n <Dropdown current={aggregatorName} values={Object.keys(aggregators)} open={isOpen('aggregators')} zIndex={isOpen('aggregators') ? uiState.maxZIndex + 1 : 1} toggle={() => setUiState(s => ({ ...s, openDropdown: isOpen('aggregators') ? false : 'aggregators' }))} setValue={v => actions.updateProp('aggregatorName', v)} />\n <a role=\"button\" className=\"pvtRowOrder\" onClick={() => actions.updateProp('rowOrder', sortIcons[rowOrder].next)}>{sortIcons[rowOrder].rowSymbol}</a>\n <a role=\"button\" className=\"pvtColOrder\" onClick={() => actions.updateProp('colOrder', sortIcons[colOrder].next)}>{sortIcons[colOrder].colSymbol}</a>\n {numValsAllowed > 0 && <br />}\n {new Array(numValsAllowed).fill(null).map((_, i) => [\n <Dropdown key={i} current={vals[i]} values={Object.keys(pivotState.attrValues).filter(e => !hiddenAttributes.includes(e) && !hiddenFromAggregators.includes(e))} open={isOpen(`val${i}`)} zIndex={isOpen(`val${i}`) ? uiState.maxZIndex + 1 : 1} toggle={() => setUiState(s => ({ ...s, openDropdown: isOpen(`val${i}`) ? false : `val${i}` }))} setValue={value => { const newVals = [...vals]; newVals[i] = value; actions.updateProp('vals', newVals); }} />,\n i + 1 !== numValsAllowed ? <br key={`br${i}`} /> : null,\n ])}\n </td>\n <DnDCell id=\"cols\" items={colAttrs} classes=\"pvtAxisContainer pvtHorizList pvtCols\" isHorizontal={true} {...sharedCellProps} />\n </tr>\n <tr>\n <DnDCell id=\"rows\" items={rowAttrs} classes=\"pvtAxisContainer pvtVertList pvtRows\" isHorizontal={false} {...sharedCellProps} />\n <td className=\"pvtOutput\">\n <PivotTable {...componentProps} />\n {pagination && renderFooter()}\n </td>\n </tr>\n </>\n ) : (\n <>\n <tr>\n <td className=\"pvtRenderers\">\n <Dropdown current={actualRendererName} values={Object.keys(renderers)} open={isOpen('renderer')} zIndex={isOpen('renderer') ? uiState.maxZIndex + 1 : 1} toggle={() => setUiState(s => ({ ...s, openDropdown: isOpen('renderer') ? false : 'renderer' }))} setValue={v => actions.updateProp('rendererName', v)} />\n </td>\n <td className=\"pvtVals\">\n <Dropdown current={aggregatorName} values={Object.keys(aggregators)} open={isOpen('aggregators')} zIndex={isOpen('aggregators') ? uiState.maxZIndex + 1 : 1} toggle={() => setUiState(s => ({ ...s, openDropdown: isOpen('aggregators') ? false : 'aggregators' }))} setValue={v => actions.updateProp('aggregatorName', v)} />\n <a role=\"button\" className=\"pvtRowOrder\" onClick={() => actions.updateProp('rowOrder', sortIcons[rowOrder].next)}>{sortIcons[rowOrder].rowSymbol}</a>\n <a role=\"button\" className=\"pvtColOrder\" onClick={() => actions.updateProp('colOrder', sortIcons[colOrder].next)}>{sortIcons[colOrder].colSymbol}</a>\n {numValsAllowed > 0 && <br />}\n {new Array(numValsAllowed).fill(null).map((_, i) => [\n <Dropdown key={i} current={vals[i]} values={Object.keys(pivotState.attrValues).filter(e => !hiddenAttributes.includes(e) && !hiddenFromAggregators.includes(e))} open={isOpen(`val${i}`)} zIndex={isOpen(`val${i}`) ? uiState.maxZIndex + 1 : 1} toggle={() => setUiState(s => ({ ...s, openDropdown: isOpen(`val${i}`) ? false : `val${i}` }))} setValue={value => { const newVals = [...vals]; newVals[i] = value; actions.updateProp('vals', newVals); }} />,\n i + 1 !== numValsAllowed ? <br key={`br${i}`} /> : null,\n ])}\n </td>\n <DnDCell id=\"cols\" items={colAttrs} classes=\"pvtAxisContainer pvtHorizList pvtCols\" isHorizontal={true} {...sharedCellProps} />\n </tr>\n <tr>\n <DnDCell id=\"unused\" items={unusedAttrs} classes={`pvtAxisContainer pvtUnused pvtVertList`} isHorizontal={false} {...sharedCellProps} />\n <DnDCell id=\"rows\" items={rowAttrs} classes=\"pvtAxisContainer pvtVertList pvtRows\" isHorizontal={false} {...sharedCellProps} />\n <td className=\"pvtOutput\">\n <PivotTable {...componentProps} />\n {pagination && renderFooter()}\n </td>\n </tr>\n </>\n )}\n </tbody>\n </table>\n <DragOverlay>{activeId ? <ul style={{ listStyle: 'none', padding: 0, margin: 0 }}><li><span className=\"pvtAttr\">{activeId}</span></li></ul> : null}</DragOverlay>\n </DndContext>\n );\n};\n\nPivotTableUI.propTypes = Object.assign({}, PivotData.propTypes, {\n onChange: PropTypes.func.isRequired,\n hiddenAttributes: PropTypes.arrayOf(PropTypes.string),\n hiddenFromAggregators: PropTypes.arrayOf(PropTypes.string),\n hiddenFromDragDrop: PropTypes.arrayOf(PropTypes.string),\n unusedOrientationCutoff: PropTypes.number,\n menuLimit: PropTypes.number,\n rendererName: PropTypes.string,\n renderers: PropTypes.objectOf(PropTypes.func),\n size: PropTypes.oneOf(['sm', 'md', 'lg']),\n columnResizing: PropTypes.bool,\n columnWidths: PropTypes.object,\n onColumnWidthChange: PropTypes.func,\n});\n\nPivotTableUI.defaultProps = Object.assign({}, PivotData.defaultProps, {\n onChange: () => { },\n hiddenAttributes: [],\n hiddenFromAggregators: [],\n hiddenFromDragDrop: [],\n unusedOrientationCutoff: 85,\n menuLimit: 500,\n rendererName: 'Table',\n renderers: TableRenderers,\n columnResizing: false,\n columnWidths: {},\n});\n\nexport default PivotTableUI;\n"],"mappings":";AAAA,YAAY;;AAAC,SAAAA,QAAAC,CAAA,sCAAAD,OAAA,wBAAAE,MAAA,uBAAAA,MAAA,CAAAC,QAAA,aAAAF,CAAA,kBAAAA,CAAA,gBAAAA,CAAA,WAAAA,CAAA,yBAAAC,MAAA,IAAAD,CAAA,CAAAG,WAAA,KAAAF,MAAA,IAAAD,CAAA,KAAAC,MAAA,CAAAG,SAAA,qBAAAJ,CAAA,KAAAD,OAAA,CAAAC,CAAA;AAAAK,MAAA,CAAAC,cAAA,CAAAC,OAAA;EAAAC,KAAA;AAAA;AAAAD,OAAA,cAAAA,OAAA,CAAAE,QAAA,GAAAF,OAAA,CAAAG,kBAAA;AAEb,IAAAC,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,eAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAL,sBAAA,CAAAF,OAAA;AAEA,IAAAQ,KAAA,GAAAR,OAAA;AAQA,IAAAS,SAAA,GAAAT,OAAA;AAOA,IAAAU,UAAA,GAAAV,OAAA;AAAyC,IAAAW,SAAA;AAAA,SAAAT,uBAAAU,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,gBAAAA,CAAA;AAAA,SAAAb,wBAAAa,CAAA,EAAAE,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAhB,uBAAA,YAAAA,wBAAAa,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAzB,CAAA,EAAA+B,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAR,CAAA,iBAAAA,CAAA,gBAAA1B,OAAA,CAAA0B,CAAA,0BAAAA,CAAA,SAAAO,CAAA,MAAAhC,CAAA,GAAA2B,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAA7B,CAAA,CAAAkC,GAAA,CAAAT,CAAA,UAAAzB,CAAA,CAAAmC,GAAA,CAAAV,CAAA,GAAAzB,CAAA,CAAAoC,GAAA,CAAAX,CAAA,EAAAO,CAAA,cAAAK,EAAA,IAAAZ,CAAA,gBAAAY,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAd,CAAA,EAAAY,EAAA,OAAAN,CAAA,IAAA/B,CAAA,GAAAK,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAmC,wBAAA,CAAAf,CAAA,EAAAY,EAAA,OAAAN,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAApC,CAAA,CAAAgC,CAAA,EAAAK,EAAA,EAAAN,CAAA,IAAAC,CAAA,CAAAK,EAAA,IAAAZ,CAAA,CAAAY,EAAA,WAAAL,CAAA,KAAAP,CAAA,EAAAE,CAAA;AAAA,SAAAc,mBAAAZ,CAAA,WAAAa,kBAAA,CAAAb,CAAA,KAAAc,gBAAA,CAAAd,CAAA,KAAAe,2BAAA,CAAAf,CAAA,KAAAgB,kBAAA;AAAA,SAAAA,mBAAA,cAAAC,SAAA;AAAA,SAAAH,iBAAAd,CAAA,8BAAA5B,MAAA,YAAA4B,CAAA,CAAA5B,MAAA,CAAAC,QAAA,aAAA2B,CAAA,uBAAAkB,KAAA,CAAAC,IAAA,CAAAnB,CAAA;AAAA,SAAAa,mBAAAb,CAAA,QAAAkB,KAAA,CAAAE,OAAA,CAAApB,CAAA,UAAAqB,iBAAA,CAAArB,CAAA;AAAA,SAAAsB,QAAA1B,CAAA,EAAAI,CAAA,QAAAF,CAAA,GAAAtB,MAAA,CAAA+C,IAAA,CAAA3B,CAAA,OAAApB,MAAA,CAAAgD,qBAAA,QAAArD,CAAA,GAAAK,MAAA,CAAAgD,qBAAA,CAAA5B,CAAA,GAAAI,CAAA,KAAA7B,CAAA,GAAAA,CAAA,CAAAsD,MAAA,WAAAzB,CAAA,WAAAxB,MAAA,CAAAmC,wBAAA,CAAAf,CAAA,EAAAI,CAAA,EAAA0B,UAAA,OAAA5B,CAAA,CAAA6B,IAAA,CAAAC,KAAA,CAAA9B,CAAA,EAAA3B,CAAA,YAAA2B,CAAA;AAAA,SAAA+B,cAAAjC,CAAA,aAAAI,CAAA,MAAAA,CAAA,GAAA8B,SAAA,CAAAC,MAAA,EAAA/B,CAAA,UAAAF,CAAA,WAAAgC,SAAA,CAAA9B,CAAA,IAAA8B,SAAA,CAAA9B,CAAA,QAAAA,CAAA,OAAAsB,OAAA,CAAA9C,MAAA,CAAAsB,CAAA,OAAAkC,OAAA,WAAAhC,CAAA,IAAAiC,eAAA,CAAArC,CAAA,EAAAI,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAAxB,MAAA,CAAA0D,yBAAA,GAAA1D,MAAA,CAAA2D,gBAAA,CAAAvC,CAAA,EAAApB,MAAA,CAAA0D,yBAAA,CAAApC,CAAA,KAAAwB,OAAA,CAAA9C,MAAA,CAAAsB,CAAA,GAAAkC,OAAA,WAAAhC,CAAA,IAAAxB,MAAA,CAAAC,cAAA,CAAAmB,CAAA,EAAAI,CAAA,EAAAxB,MAAA,CAAAmC,wBAAA,CAAAb,CAAA,EAAAE,CAAA,iBAAAJ,CAAA;AAAA,SAAAqC,gBAAArC,CAAA,EAAAI,CAAA,EAAAF,CAAA,YAAAE,CAAA,GAAAoC,cAAA,CAAApC,CAAA,MAAAJ,CAAA,GAAApB,MAAA,CAAAC,cAAA,CAAAmB,CAAA,EAAAI,CAAA,IAAArB,KAAA,EAAAmB,CAAA,EAAA4B,UAAA,MAAAW,YAAA,MAAAC,QAAA,UAAA1C,CAAA,CAAAI,CAAA,IAAAF,CAAA,EAAAF,CAAA;AAAA,SAAAwC,eAAAtC,CAAA,QAAAI,CAAA,GAAAqC,YAAA,CAAAzC,CAAA,gCAAA5B,OAAA,CAAAgC,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAqC,aAAAzC,CAAA,EAAAE,CAAA,oBAAA9B,OAAA,CAAA4B,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAF,CAAA,GAAAE,CAAA,CAAA1B,MAAA,CAAAoE,WAAA,kBAAA5C,CAAA,QAAAM,CAAA,GAAAN,CAAA,CAAAc,IAAA,CAAAZ,CAAA,EAAAE,CAAA,gCAAA9B,OAAA,CAAAgC,CAAA,UAAAA,CAAA,YAAAe,SAAA,yEAAAjB,CAAA,GAAAyC,MAAA,GAAAC,MAAA,EAAA5C,CAAA;AAAA,SAAA6C,yBAAA/C,CAAA,EAAAE,CAAA,gBAAAF,CAAA,iBAAAzB,CAAA,EAAA6B,CAAA,EAAAE,CAAA,GAAA0C,6BAAA,CAAAhD,CAAA,EAAAE,CAAA,OAAAtB,MAAA,CAAAgD,qBAAA,QAAAvB,CAAA,GAAAzB,MAAA,CAAAgD,qBAAA,CAAA5B,CAAA,QAAAI,CAAA,MAAAA,CAAA,GAAAC,CAAA,CAAA8B,MAAA,EAAA/B,CAAA,IAAA7B,CAAA,GAAA8B,CAAA,CAAAD,CAAA,UAAAF,CAAA,CAAA+C,OAAA,CAAA1E,CAAA,QAAA2E,oBAAA,CAAApC,IAAA,CAAAd,CAAA,EAAAzB,CAAA,MAAA+B,CAAA,CAAA/B,CAAA,IAAAyB,CAAA,CAAAzB,CAAA,aAAA+B,CAAA;AAAA,SAAA0C,8BAAA5C,CAAA,EAAAJ,CAAA,gBAAAI,CAAA,iBAAAF,CAAA,gBAAAG,CAAA,IAAAD,CAAA,SAAAS,cAAA,CAAAC,IAAA,CAAAV,CAAA,EAAAC,CAAA,gBAAAL,CAAA,CAAAiD,OAAA,CAAA5C,CAAA,aAAAH,CAAA,CAAAG,CAAA,IAAAD,CAAA,CAAAC,CAAA,YAAAH,CAAA;AAAA,SAAAiD,SAAA,WAAAA,QAAA,GAAAvE,MAAA,CAAAwE,MAAA,GAAAxE,MAAA,CAAAwE,MAAA,CAAAC,IAAA,eAAAhD,CAAA,aAAAL,CAAA,MAAAA,CAAA,GAAAkC,SAAA,CAAAC,MAAA,EAAAnC,CAAA,UAAAE,CAAA,GAAAgC,SAAA,CAAAlC,CAAA,YAAAI,CAAA,IAAAF,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAZ,CAAA,EAAAE,CAAA,MAAAC,CAAA,CAAAD,CAAA,IAAAF,CAAA,CAAAE,CAAA,aAAAC,CAAA,KAAA8C,QAAA,CAAAnB,KAAA,OAAAE,SAAA;AAAA,SAAAoB,eAAAlD,CAAA,EAAAJ,CAAA,WAAAuD,eAAA,CAAAnD,CAAA,KAAAoD,qBAAA,CAAApD,CAAA,EAAAJ,CAAA,KAAAmB,2BAAA,CAAAf,CAAA,EAAAJ,CAAA,KAAAyD,gBAAA;AAAA,SAAAA,iBAAA,cAAApC,SAAA;AAAA,SAAAF,4BAAAf,CAAA,EAAAsD,CAAA,QAAAtD,CAAA,2BAAAA,CAAA,SAAAqB,iBAAA,CAAArB,CAAA,EAAAsD,CAAA,OAAAxD,CAAA,MAAAyD,QAAA,CAAA7C,IAAA,CAAAV,CAAA,EAAAwD,KAAA,6BAAA1D,CAAA,IAAAE,CAAA,CAAA1B,WAAA,KAAAwB,CAAA,GAAAE,CAAA,CAAA1B,WAAA,CAAAmF,IAAA,aAAA3D,CAAA,cAAAA,CAAA,GAAAoB,KAAA,CAAAC,IAAA,CAAAnB,CAAA,oBAAAF,CAAA,+CAAA4D,IAAA,CAAA5D,CAAA,IAAAuB,iBAAA,CAAArB,CAAA,EAAAsD,CAAA;AAAA,SAAAjC,kBAAArB,CAAA,EAAAsD,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAtD,CAAA,CAAA+B,MAAA,MAAAuB,CAAA,GAAAtD,CAAA,CAAA+B,MAAA,YAAAnC,CAAA,MAAAK,CAAA,GAAAiB,KAAA,CAAAoC,CAAA,GAAA1D,CAAA,GAAA0D,CAAA,EAAA1D,CAAA,IAAAK,CAAA,CAAAL,CAAA,IAAAI,CAAA,CAAAJ,CAAA,UAAAK,CAAA;AAAA,SAAAmD,sBAAApD,CAAA,EAAA2D,CAAA,QAAA7D,CAAA,WAAAE,CAAA,gCAAA5B,MAAA,IAAA4B,CAAA,CAAA5B,MAAA,CAAAC,QAAA,KAAA2B,CAAA,4BAAAF,CAAA,QAAAF,CAAA,EAAAK,CAAA,EAAAC,CAAA,EAAA0D,CAAA,EAAAN,CAAA,OAAAnD,CAAA,OAAAhC,CAAA,iBAAA+B,CAAA,IAAAJ,CAAA,GAAAA,CAAA,CAAAY,IAAA,CAAAV,CAAA,GAAA6D,IAAA,QAAAF,CAAA,QAAAnF,MAAA,CAAAsB,CAAA,MAAAA,CAAA,UAAAK,CAAA,uBAAAA,CAAA,IAAAP,CAAA,GAAAM,CAAA,CAAAQ,IAAA,CAAAZ,CAAA,GAAAgE,IAAA,MAAAR,CAAA,CAAA3B,IAAA,CAAA/B,CAAA,CAAAjB,KAAA,GAAA2E,CAAA,CAAAvB,MAAA,KAAA4B,CAAA,GAAAxD,CAAA,iBAAAH,CAAA,IAAA7B,CAAA,OAAA8B,CAAA,GAAAD,CAAA,yBAAAG,CAAA,YAAAL,CAAA,eAAA8D,CAAA,GAAA9D,CAAA,cAAAtB,MAAA,CAAAoF,CAAA,MAAAA,CAAA,2BAAAzF,CAAA,QAAA8B,CAAA,aAAAqD,CAAA;AAAA,SAAAH,gBAAAnD,CAAA,QAAAkB,KAAA,CAAAE,OAAA,CAAApB,CAAA,UAAAA,CAAA;AAEzC;;AAEO,IAAMnB,kBAAkB,GAAAH,OAAA,CAAAG,kBAAA,gBAAGkF,iBAAK,CAACC,UAAU,CAChD,UAAAC,IAAA,EAeEC,GAAG,EACA;EAAA,IAdDT,IAAI,GAAAQ,IAAA,CAAJR,IAAI;IACJU,UAAU,GAAAF,IAAA,CAAVE,UAAU;IACVC,WAAW,GAAAH,IAAA,CAAXG,WAAW;IACXC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,SAAS,GAAAL,IAAA,CAATK,SAAS;IACTC,iBAAiB,GAAAN,IAAA,CAAjBM,iBAAiB;IACjBC,iBAAiB,GAAAP,IAAA,CAAjBO,iBAAiB;IACjBC,kBAAkB,GAAAR,IAAA,CAAlBQ,kBAAkB;IAClBC,sBAAsB,GAAAT,IAAA,CAAtBS,sBAAsB;IACtBC,MAAM,GAAAV,IAAA,CAANU,MAAM;IACNC,eAAe,GAAAX,IAAA,CAAfW,eAAe;IACfC,UAAU,GAAAZ,IAAA,CAAVY,UAAU;EAIZ,IAAAC,SAAA,GAAwB,IAAAC,eAAQ,EAAC,KAAK,CAAC;IAAAC,UAAA,GAAA9B,cAAA,CAAA4B,SAAA;IAAhCG,IAAI,GAAAD,UAAA;IAAEE,OAAO,GAAAF,UAAA;EACpB,IAAAG,UAAA,GAAoC,IAAAJ,eAAQ,EAAC,EAAE,CAAC;IAAAK,UAAA,GAAAlC,cAAA,CAAAiC,UAAA;IAAzCE,UAAU,GAAAD,UAAA;IAAEE,aAAa,GAAAF,UAAA;EAChC,IAAMG,OAAO,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EAE5B,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAG9G,KAAK,EAAI;IAC3B,IAAIA,KAAK,IAAIyF,WAAW,EAAE;MACxBM,sBAAsB,CAACjB,IAAI,EAAE,CAAC9E,KAAK,CAAC,CAAC;IACvC,CAAC,MAAM;MACL6F,iBAAiB,CAACf,IAAI,EAAE,CAAC9E,KAAK,CAAC,CAAC;IAClC;EACF,CAAC;EAED,IAAM+G,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,CAAC;IAAA,OACrBA,CAAC,CAACC,WAAW,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,QAAQ,CAACT,UAAU,CAACO,WAAW,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;EAAA;EAElE,IAAME,UAAU,GAAG,SAAbA,UAAUA,CAAInG,CAAC,EAAEjB,KAAK,EAAK;IAC/BiB,CAAC,CAACoG,eAAe,CAAC,CAAC;IACnBzB,iBAAiB,CACfd,IAAI,EACJjF,MAAM,CAAC+C,IAAI,CAAC4C,UAAU,CAAC,CAAC1C,MAAM,CAAC,UAAAwE,CAAC;MAAA,OAAIA,CAAC,KAAKtH,KAAK;IAAA,EACjD,CAAC;EACH,CAAC;EAED,IAAMuH,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;IACzB,IAAMC,QAAQ,GAAG3H,MAAM,CAAC+C,IAAI,CAAC4C,UAAU,CAAC,CAACpC,MAAM,GAAGuC,SAAS;IAC3D,IAAM8B,MAAM,GAAG5H,MAAM,CAAC+C,IAAI,CAAC4C,UAAU,CAAC;IACtC,IAAMkC,KAAK,GAAGD,MAAM,CAAC3E,MAAM,CAACiE,aAAa,CAAC,CAACY,IAAI,CAACjC,MAAM,CAAC;IAEvD,oBACEvF,MAAA,YAAAyH,aAAA,CAAChH,eAAA,WAAS;MAACiH,MAAM,EAAC,gBAAgB;MAACjB,OAAO,EAAEA;IAAQ,gBAClDzG,MAAA,YAAAyH,aAAA;MACErC,GAAG,EAAEqB,OAAQ;MACbkB,SAAS,EAAC,cAAc;MACxBC,KAAK,EAAE;QAAEC,OAAO,EAAE,OAAO;QAAEC,MAAM,EAAE,SAAS;QAAEjC,MAAM,EAANA;MAAO,CAAE;MACvDkC,OAAO,EAAE,SAATA,OAAOA,CAAA;QAAA,OAAQpC,kBAAkB,CAAChB,IAAI,CAAC;MAAA;IAAC,gBAExC3E,MAAA,YAAAyH,aAAA;MAAGM,OAAO,EAAE,SAATA,OAAOA,CAAA;QAAA,OAAQ3B,OAAO,CAAC,KAAK,CAAC;MAAA,CAAC;MAACuB,SAAS,EAAC;IAAW,GAAC,MAAI,CAAC,eAC7D3H,MAAA,YAAAyH,aAAA;MAAME,SAAS,EAAC;IAAe,GAAC,QAAO,CAAC,eACxC3H,MAAA,YAAAyH,aAAA,aAAK9C,IAAS,CAAC,EAEd0C,QAAQ,iBAAIrH,MAAA,YAAAyH,aAAA,YAAG,2BAA4B,CAAC,EAE5CJ,QAAQ,iBACPrH,MAAA,YAAAyH,aAAA,yBACEzH,MAAA,YAAAyH,aAAA;MACEO,IAAI,EAAC,MAAM;MACXC,WAAW,EAAC,eAAe;MAC3BN,SAAS,EAAC,WAAW;MACrB9H,KAAK,EAAE0G,UAAW;MAClB2B,QAAQ,EAAE,SAAVA,QAAQA,CAAEpH,CAAC;QAAA,OAAI0F,aAAa,CAAC1F,CAAC,CAACqH,MAAM,CAACtI,KAAK,CAAC;MAAA;IAAC,CAC9C,CAAC,eACFG,MAAA,YAAAyH,aAAA,WAAK,CAAC,eACNzH,MAAA,YAAAyH,aAAA;MACEW,IAAI,EAAC,QAAQ;MACbT,SAAS,EAAC,WAAW;MACrBI,OAAO,EAAE,SAATA,OAAOA,CAAA;QAAA,OACLnC,sBAAsB,CACpBjB,IAAI,EACJjF,MAAM,CAAC+C,IAAI,CAAC4C,UAAU,CAAC,CAAC1C,MAAM,CAACiE,aAAa,CAC9C,CAAC;MAAA;IACF,GACF,SACQ,EAACU,MAAM,CAACrE,MAAM,KAAKsE,KAAK,CAACtE,MAAM,GAAG,KAAK,GAAGsE,KAAK,CAACtE,MACtD,CAAC,EAAC,GAAG,eACRjD,MAAA,YAAAyH,aAAA;MACEW,IAAI,EAAC,QAAQ;MACbT,SAAS,EAAC,WAAW;MACrBI,OAAO,EAAE,SAATA,OAAOA,CAAA;QAAA,OACLrC,iBAAiB,CACff,IAAI,EACJjF,MAAM,CAAC+C,IAAI,CAAC4C,UAAU,CAAC,CAAC1C,MAAM,CAACiE,aAAa,CAC9C,CAAC;MAAA;IACF,GACF,WACU,EAACU,MAAM,CAACrE,MAAM,KAAKsE,KAAK,CAACtE,MAAM,GAAG,KAAK,GAAGsE,KAAK,CAACtE,MACxD,CACF,CACJ,EAEAoE,QAAQ,iBACPrH,MAAA,YAAAyH,aAAA;MAAKE,SAAS,EAAC;IAAmB,GAC/BJ,KAAK,CAACc,GAAG,CAAC,UAAAxB,CAAC;MAAA,oBACV7G,MAAA,YAAAyH,aAAA;QACEa,GAAG,EAAEzB,CAAE;QACPkB,OAAO,EAAE,SAATA,OAAOA,CAAA;UAAA,OAAQpB,WAAW,CAACE,CAAC,CAAC;QAAA,CAAC;QAC9Bc,SAAS,EAAEd,CAAC,IAAIvB,WAAW,GAAG,EAAE,GAAG;MAAW,gBAE9CtF,MAAA,YAAAyH,aAAA;QAAGE,SAAS,EAAC,SAAS;QAACI,OAAO,EAAE,SAATA,OAAOA,CAAEjH,CAAC;UAAA,OAAImG,UAAU,CAACnG,CAAC,EAAE+F,CAAC,CAAC;QAAA;MAAC,GAAC,MAAO,CAAC,eAC/D7G,MAAA,YAAAyH,aAAA;QAAGE,SAAS,EAAC;MAAe,GAAC,MAAS,CAAC,EACtCd,CAAC,KAAK,EAAE,gBAAG7G,MAAA,YAAAyH,aAAA,aAAI,MAAQ,CAAC,GAAGZ,CAC3B,CAAC;IAAA,CACL,CACE,CAEJ,CACI,CAAC;EAEhB,CAAC;EAED,IAAM0B,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;IAC5BnC,OAAO,CAAC,UAAA/G,CAAC;MAAA,OAAI,CAACA,CAAC;IAAA,EAAC;IAChBsG,kBAAkB,CAAChB,IAAI,CAAC;EAC1B,CAAC;EAED,IAAM6D,QAAQ,GAAG9I,MAAM,CAAC+C,IAAI,CAAC6C,WAAW,CAAC,CAACrC,MAAM,KAAK,CAAC,GAAG,sBAAsB,GAAG,EAAE;EAEpF,oBACEjD,MAAA,YAAAyH,aAAA;IACErC,GAAG,EAAEA,GAAI;IACT,WAAST,IAAK;IACdiD,KAAK,EAAE;MAAEa,OAAO,EAAE1C,UAAU,GAAG,GAAG,GAAG;IAAE;EAAE,gBAEzC/F,MAAA,YAAAyH,aAAA,SAAAxD,QAAA;IAAM0D,SAAS,EAAE,UAAU,GAAGa;EAAS,GAAK1C,eAAe,GACxDnB,IAAI,eACL3E,MAAA,YAAAyH,aAAA;IACEE,SAAS,EAAC,aAAa;IACvBI,OAAO,EAAE,SAATA,OAAOA,CAAEjH,CAAC,EAAI;MAAEA,CAAC,CAACoG,eAAe,CAAC,CAAC;MAAEqB,eAAe,CAAC,CAAC;IAAE;EAAE,GAEzD,GAAG,EAAC,QACD,CACF,CAAC,EACNpC,IAAI,GAAGiB,YAAY,CAAC,CAAC,GAAG,IACvB,CAAC;AAET,CACF,CAAC;AACDrH,kBAAkB,CAAC2I,WAAW,GAAG,oBAAoB;AAErD,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,KAAA,EAAwB;EAAA,IAAlBC,EAAE,GAAAD,KAAA,CAAFC,EAAE;IAAKC,IAAI,GAAAjF,wBAAA,CAAA+E,KAAA,EAAA/H,SAAA;EACtC,IAAAkI,YAAA,GAOI,IAAAC,qBAAW,EAAC;MAAEH,EAAE,EAAFA;IAAG,CAAC,CAAC;IANrBI,UAAU,GAAAF,YAAA,CAAVE,UAAU;IACVC,SAAS,GAAAH,YAAA,CAATG,SAAS;IACTC,UAAU,GAAAJ,YAAA,CAAVI,UAAU;IACVC,SAAS,GAAAL,YAAA,CAATK,SAAS;IACTC,UAAU,GAAAN,YAAA,CAAVM,UAAU;IACVtD,UAAU,GAAAgD,YAAA,CAAVhD,UAAU;EAGZ,IAAM6B,KAAK,GAAG;IACZwB,SAAS,EAAEE,cAAG,CAACC,SAAS,CAAC9E,QAAQ,CAAC2E,SAAS,CAAC;IAC5CC,UAAU,EAAVA;EACF,CAAC;EAED,oBACErJ,MAAA,YAAAyH,aAAA,CAAC1H,kBAAkB,EAAAkE,QAAA;IACjBmB,GAAG,EAAE+D,UAAW;IAChBxE,IAAI,EAAEkE,EAAG;IACT9C,UAAU,EAAEA,UAAW;IACvBD,eAAe,EAAA/C,aAAA,CAAAA,aAAA,CAAAA,aAAA,KAAOkG,UAAU,GAAKC,SAAS;MAAEtB,KAAK,EAALA;IAAK;EAAG,GACpDkB,IAAI,CACT,CAAC;AAEN,CAAC;AAEM,IAAMhJ,QAAQ,GAAAF,OAAA,CAAAE,QAAA,GAAG,SAAXA,QAAQA,CAAA0J,KAAA;EAAA,IAAAC,YAAA,GAAAD,KAAA,CAAM3D,MAAM;IAANA,MAAM,GAAA4D,YAAA,cAAG,CAAC,GAAAA,YAAA;IAAAC,UAAA,GAAAF,KAAA,CAAErD,IAAI;IAAJA,IAAI,GAAAuD,UAAA,cAAG,KAAK,GAAAA,UAAA;IAAEC,MAAM,GAAAH,KAAA,CAANG,MAAM;IAAEC,OAAO,GAAAJ,KAAA,CAAPI,OAAO;IAAAC,YAAA,GAAAL,KAAA,CAAElC,MAAM;IAANA,MAAM,GAAAuC,YAAA,cAAG,EAAE,GAAAA,YAAA;IAAEC,QAAQ,GAAAN,KAAA,CAARM,QAAQ;EAAA,oBACzF9J,MAAA,YAAAyH,aAAA;IAAKE,SAAS,EAAC,aAAa;IAACC,KAAK,EAAE;MAAE/B,MAAM,EAANA;IAAO;EAAE,gBAC7C7F,MAAA,YAAAyH,aAAA;IACEM,OAAO,EAAE,SAATA,OAAOA,CAAEjH,CAAC,EAAI;MAAEA,CAAC,CAACoG,eAAe,CAAC,CAAC;MAAEyC,MAAM,CAAC,CAAC;IAAE,CAAE;IACjDhC,SAAS,EAAE,sCAAsC,IAAIxB,IAAI,GAAG,wBAAwB,GAAG,EAAE,CAAE;IAC3FiC,IAAI,EAAC;EAAQ,gBAEbpI,MAAA,YAAAyH,aAAA;IAAKE,SAAS,EAAC;EAAiB,GAAExB,IAAI,GAAG,GAAG,GAAG,GAAS,CAAC,EACxDyD,OAAO,iBAAI5J,MAAA,YAAAyH,aAAA,eAAM,MAAY,CAC3B,CAAC,EACLtB,IAAI,iBACHnG,MAAA,YAAAyH,aAAA;IAAKE,SAAS,EAAC;EAAiB,GAC7BL,MAAM,CAACe,GAAG,CAAC,UAAAnH,CAAC;IAAA,oBACXlB,MAAA,YAAAyH,aAAA;MACEa,GAAG,EAAEpH,CAAE;MACPkH,IAAI,EAAC,QAAQ;MACbL,OAAO,EAAE,SAATA,OAAOA,CAAEjH,CAAC,EAAI;QACZA,CAAC,CAACoG,eAAe,CAAC,CAAC;QACnB,IAAI0C,OAAO,KAAK1I,CAAC,EAAEyI,MAAM,CAAC,CAAC,CAAC,KACvB;UAAEG,QAAQ,CAAC5I,CAAC,CAAC;UAAEyI,MAAM,CAAC,CAAC;QAAE;MAChC,CAAE;MACFhC,SAAS,EAAE,mBAAmB,IAAIzG,CAAC,KAAK0I,OAAO,GAAG,wBAAwB,GAAG,EAAE;IAAE,GAEhF1I,CACE,CAAC;EAAA,CACP,CACE,CAEJ,CAAC;AAAA,CACP;AAED,IAAM6I,OAAO,GAAG,SAAVA,OAAOA,CAAAC,KAAA,EAaP;EAAA,IAZJnB,EAAE,GAAAmB,KAAA,CAAFnB,EAAE;IACFoB,KAAK,GAAAD,KAAA,CAALC,KAAK;IACLC,OAAO,GAAAF,KAAA,CAAPE,OAAO;IACPC,KAAK,GAAAH,KAAA,CAALG,KAAK;IACL7E,WAAW,GAAA0E,KAAA,CAAX1E,WAAW;IACX8E,OAAO,GAAAJ,KAAA,CAAPI,OAAO;IACP5E,SAAS,GAAAwE,KAAA,CAATxE,SAAS;IACTC,iBAAiB,GAAAuE,KAAA,CAAjBvE,iBAAiB;IACjBC,iBAAiB,GAAAsE,KAAA,CAAjBtE,iBAAiB;IACjBC,kBAAkB,GAAAqE,KAAA,CAAlBrE,kBAAkB;IAClBC,sBAAsB,GAAAoE,KAAA,CAAtBpE,sBAAsB;IACtByE,YAAY,GAAAL,KAAA,CAAZK,YAAY;EAEZ,IAAMC,QAAQ,GAAGD,YAAY,GACzBE,uCAA6B,GAC7BC,qCAA2B;EAE/B,oBACExK,MAAA,YAAAyH,aAAA;IAAIE,SAAS,EAAEuC;EAAQ,gBACrBlK,MAAA,YAAAyH,aAAA,CAAC9G,SAAA,CAAA8J,eAAe;IAAC5B,EAAE,EAAEA,EAAG;IAACoB,KAAK,EAAEA,KAAM;IAACK,QAAQ,EAAEA;EAAS,gBACxDtK,MAAA,YAAAyH,aAAA;IAAIG,KAAK,EAAE;MAAE8C,SAAS,EAAE,MAAM;MAAEC,OAAO,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE;EAAE,GACrDX,KAAK,CAAC5B,GAAG,CAAC,UAAAxB,CAAC;IAAA,oBACV7G,MAAA,YAAAyH,aAAA,CAACkB,iBAAiB;MAChBL,GAAG,EAAEzB,CAAE;MACPgC,EAAE,EAAEhC,CAAE;MACNxB,UAAU,EAAE8E,KAAK,CAAC9E,UAAU,CAACwB,CAAC,CAAC,IAAI,CAAC,CAAE;MACtCvB,WAAW,EAAEA,WAAW,CAACuB,CAAC,CAAC,IAAI,CAAC,CAAE;MAClCtB,MAAM,EAAE,IAAAsF,kBAAO,EAACT,OAAO,EAAEvD,CAAC,CAAE;MAC5BrB,SAAS,EAAEA,SAAU;MACrBC,iBAAiB,EAAEA,iBAAkB;MACrCC,iBAAiB,EAAEA,iBAAkB;MACrCC,kBAAkB,EAAEA,kBAAmB;MACvCC,sBAAsB,EAAEA,sBAAuB;MAC/CC,MAAM,EAAEsE,KAAK,CAACW,QAAQ,CAACjE,CAAC,CAAC,IAAIsD,KAAK,CAACY;IAAU,CAC9C,CAAC;EAAA,CACH,CACC,CACW,CACf,CAAC;AAET,CAAC;AAED,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAGC,KAAK,EAAI;EAAA,IAAAC,qBAAA,EAAAC,sBAAA;EAC5B;EACA,IAAAC,SAAA,GAA0D,IAAAC,mBAAQ,EAACJ,KAAK,CAAC;IAA1DK,UAAU,GAAAF,SAAA,CAAjBH,KAAK;IAAqBM,UAAU,GAAAH,SAAA,CAAjBjB,KAAK;IAAcqB,OAAO,GAAAJ,SAAA,CAAPI,OAAO;;EAErD;EACA,IAAAC,UAAA,GAA8B,IAAAxF,eAAQ,EAAC;MACrC6E,QAAQ,EAAE,CAAC,CAAC;MACZC,SAAS,EAAE,IAAI;MACfW,YAAY,EAAE;IAChB,CAAC,CAAC;IAAAC,UAAA,GAAAvH,cAAA,CAAAqH,UAAA;IAJKG,OAAO,GAAAD,UAAA;IAAEE,UAAU,GAAAF,UAAA;EAK1B,IAAAG,UAAA,GAAgC,IAAA7F,eAAQ,EAAC,IAAI,CAAC;IAAA8F,UAAA,GAAA3H,cAAA,CAAA0H,UAAA;IAAvCE,QAAQ,GAAAD,UAAA;IAAEE,WAAW,GAAAF,UAAA;;EAE5B;EACA,IAAMpG,kBAAkB,GAAG,IAAAuG,kBAAW,EAAC,UAAAC,SAAS,EAAI;IAClDN,UAAU,CAAC,UAAAO,CAAC;MAAA,OAAArJ,aAAA,CAAAA,aAAA,KACPqJ,CAAC;QACJrB,SAAS,EAAEqB,CAAC,CAACrB,SAAS,GAAG,CAAC;QAC1BD,QAAQ,EAAA/H,aAAA,CAAAA,aAAA,KAAOqJ,CAAC,CAACtB,QAAQ,OAAA3H,eAAA,KAAGgJ,SAAS,EAAGC,CAAC,CAACrB,SAAS,GAAG,CAAC;MAAE;IAAA,CACzD,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,IAAAsB,gBAAA,GAwBIf,UAAU,CAvBZgB,IAAI;IAAJA,IAAI,GAAAD,gBAAA,cAAG,EAAE,GAAAA,gBAAA;IAAAE,gBAAA,GAuBPjB,UAAU,CAtBZkB,IAAI;IAAJA,IAAI,GAAAD,gBAAA,cAAG,EAAE,GAAAA,gBAAA;IAAAE,gBAAA,GAsBPnB,UAAU,CArBZoB,IAAI;IAAJA,IAAI,GAAAD,gBAAA,cAAG,EAAE,GAAAA,gBAAA;IAAAE,qBAAA,GAqBPrB,UAAU,CApBZsB,cAAc;IAAdA,cAAc,GAAAD,qBAAA,cAAG,OAAO,GAAAA,qBAAA;IAAAE,sBAAA,GAoBtBvB,UAAU,CAnBZwB,WAAW;IAAXA,WAAW,GAAAD,sBAAA,cAAGE,sBAAkB,GAAAF,sBAAA;IAAAG,qBAAA,GAmB9B1B,UAAU,CAlBZ2B,YAAY;IAAZA,YAAY,GAAAD,qBAAA,cAAG,OAAO,GAAAA,qBAAA;IAAAE,qBAAA,GAkBpB5B,UAAU,CAjBZ6B,SAAS;IAATA,SAAS,GAAAD,qBAAA,cAAGE,0BAAc,GAAAF,qBAAA;IAAAG,qBAAA,GAiBxB/B,UAAU,CAhBZhG,WAAW;IAAXA,WAAW,GAAA+H,qBAAA,cAAG,CAAC,CAAC,GAAAA,qBAAA;IAAAC,mBAAA,GAgBdhC,UAAU,CAfZlB,OAAO;IAAPA,OAAO,GAAAkD,mBAAA,cAAG,CAAC,CAAC,GAAAA,mBAAA;IAAAC,qBAAA,GAeVjC,UAAU,CAdZ9F,SAAS;IAATA,SAAS,GAAA+H,qBAAA,cAAG,GAAG,GAAAA,qBAAA;IAAAC,qBAAA,GAcblC,UAAU,CAbZmC,uBAAuB;IAAvBA,uBAAuB,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAa1BpC,UAAU,CAZZqC,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAYnBtC,UAAU,CAXZuC,qBAAqB;IAArBA,qBAAqB,GAAAD,qBAAA,cAAG,EAAE,GAAAA,qBAAA;IAAAE,sBAAA,GAWxBxC,UAAU,CAVZyC,kBAAkB;IAAlBA,kBAAkB,GAAAD,sBAAA,cAAG,EAAE,GAAAA,sBAAA;IAAAE,qBAAA,GAUrB1C,UAAU,CATZ2C,UAAU;IAAVA,UAAU,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA;IAAAE,gBAAA,GAShB5C,UAAU,CARZ6C,IAAI;IAAJA,IAAI,GAAAD,gBAAA,cAAG,CAAC,GAAAA,gBAAA;IAAAE,oBAAA,GAQN9C,UAAU,CAPZ+C,QAAQ;IAARA,QAAQ,GAAAD,oBAAA,cAAG,EAAE,GAAAA,oBAAA;IAAAE,oBAAA,GAOXhD,UAAU,CANZiD,QAAQ;IAARA,QAAQ,GAAAD,oBAAA,cAAG,YAAY,GAAAA,oBAAA;IAAAE,oBAAA,GAMrBlD,UAAU,CALZmD,QAAQ;IAARA,QAAQ,GAAAD,oBAAA,cAAG,YAAY,GAAAA,oBAAA;IAAAE,gBAAA,GAKrBpD,UAAU,CAJZqD,IAAI;IAAJA,IAAI,GAAAD,gBAAA,cAAG,IAAI,GAAAA,gBAAA;IAAAE,qBAAA,GAITtD,UAAU,CAHZuD,cAAc;IAAdA,cAAc,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA;IAAAE,qBAAA,GAGpBxD,UAAU,CAFZyD,YAAY;IAAZA,YAAY,GAAAD,qBAAA,cAAG,CAAC,CAAC,GAAAA,qBAAA;IACjBE,mBAAmB,GACjB1D,UAAU,CADZ0D,mBAAmB;EAGrB,IAAMC,WAAW,GAAGvP,MAAM,CAAC+C,IAAI,CAAC8I,UAAU,CAAClG,UAAU,CAAC,CACnD1C,MAAM,CAAC,UAAA7B,CAAC;IAAA,OAAIA,CAAC,IAAIA,CAAC,CAACiG,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAACuF,IAAI,CAACtF,QAAQ,CAAClG,CAAC,CAAC,IAAI,CAAC0L,IAAI,CAACxF,QAAQ,CAAClG,CAAC,CAAC,IAAI,CAAC6M,gBAAgB,CAAC3G,QAAQ,CAAClG,CAAC,CAAC,IAAI,CAACiN,kBAAkB,CAAC/G,QAAQ,CAAClG,CAAC,CAAC;EAAA,EAAC,CAC/I0G,IAAI,CAAC,IAAA0H,iBAAM,EAAC3D,UAAU,CAAC4D,WAAW,IAAI,EAAE,CAAC,CAAC;EAE7C,IAAMC,YAAY,GAAGH,WAAW,CAACI,MAAM,CAAC,UAACnO,CAAC,EAAEJ,CAAC;IAAA,OAAKI,CAAC,GAAGJ,CAAC,CAACmC,MAAM;EAAA,GAAE,CAAC,CAAC;EAClE,IAAMqM,WAAW,GAAGF,YAAY,GAAG3B,uBAAuB;EAE1D,IAAM8B,QAAQ,GAAG/C,IAAI,CAAC7J,MAAM,CAAC,UAAA7B,CAAC;IAAA,OAAIA,CAAC,IAAIA,CAAC,CAACiG,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC4G,gBAAgB,CAAC3G,QAAQ,CAAClG,CAAC,CAAC,IAAI,CAACiN,kBAAkB,CAAC/G,QAAQ,CAAClG,CAAC,CAAC;EAAA,EAAC;EAC3H,IAAM0O,QAAQ,GAAGlD,IAAI,CAAC3J,MAAM,CAAC,UAAA7B,CAAC;IAAA,OAAIA,CAAC,IAAIA,CAAC,CAACiG,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC4G,gBAAgB,CAAC3G,QAAQ,CAAClG,CAAC,CAAC,IAAI,CAACiN,kBAAkB,CAAC/G,QAAQ,CAAClG,CAAC,CAAC;EAAA,EAAC;;EAE3H;EACA,IAAM2O,aAAa,GAAG,SAAhBA,aAAaA,CAAG5G,EAAE,EAAI;IAC1B,IAAI2G,QAAQ,CAACxI,QAAQ,CAAC6B,EAAE,CAAC,EAAE,OAAO,MAAM;IACxC,IAAI0G,QAAQ,CAACvI,QAAQ,CAAC6B,EAAE,CAAC,EAAE,OAAO,MAAM;IACxC,IAAIoG,WAAW,CAACjI,QAAQ,CAAC6B,EAAE,CAAC,EAAE,OAAO,QAAQ;IAC7C,OAAO,IAAI;EACb,CAAC;EAED,IAAM6G,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,IAAI,EAAI;IAC5B,IAAIA,IAAI,KAAK,MAAM,EAAE,OAAOH,QAAQ;IACpC,IAAIG,IAAI,KAAK,MAAM,EAAE,OAAOJ,QAAQ;IACpC,IAAII,IAAI,KAAK,QAAQ,EAAE,OAAOV,WAAW;IACzC,OAAO,EAAE;EACX,CAAC;EAED,IAAMW,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGD,IAAI,EAAI;IAC/B,IAAIA,IAAI,KAAK,MAAM,EAAE,OAAO,UAAA9P,KAAK;MAAA,OAAI2L,OAAO,CAACqE,UAAU,CAAC,MAAM,EAAEhQ,KAAK,CAAC;IAAA;IACtE,IAAI8P,IAAI,KAAK,MAAM,EAAE,OAAO,UAAA9P,KAAK;MAAA,OAAI2L,OAAO,CAACqE,UAAU,CAAC,MAAM,EAAEhQ,KAAK,CAAC;IAAA;IACtE,IAAI8P,IAAI,KAAK,QAAQ,EAAE,OAAO,UAAAG,KAAK;MAAA,OAAItE,OAAO,CAACuE,cAAc,CAACD,KAAK,CAAC;IAAA;IACpE,OAAO,YAAM,CAAE,CAAC;EAClB,CAAC;EAED,IAAME,OAAO,GAAG,IAAAC,gBAAU,EAAC,IAAAC,eAAS,EAACC,mBAAa,EAAE;IAAEC,oBAAoB,EAAE;MAAEC,QAAQ,EAAE;IAAE;EAAE,CAAC,CAAC,CAAC;EAE/F,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,KAAA;IAAA,IAAMC,MAAM,GAAAD,KAAA,CAANC,MAAM;IAAA,OAAOvE,WAAW,CAACuE,MAAM,CAAC3H,EAAE,CAAC;EAAA;EAE9D,IAAM4H,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,KAAA,EAAyB;IAAA,IAAAC,qBAAA,EAAAC,UAAA;IAAA,IAAnBJ,MAAM,GAAAE,KAAA,CAANF,MAAM;MAAEK,IAAI,GAAAH,KAAA,CAAJG,IAAI;IACpC,IAAI,CAACA,IAAI,EAAE;IACX,IAAMC,UAAU,GAAGrB,aAAa,CAACe,MAAM,CAAC3H,EAAE,CAAC;IAC3C,IAAMkI,QAAQ,IAAAJ,qBAAA,IAAAC,UAAA,GAAGC,IAAI,CAACG,IAAI,cAAAJ,UAAA,gBAAAA,UAAA,GAATA,UAAA,CAAWhH,OAAO,cAAAgH,UAAA,gBAAAA,UAAA,GAAlBA,UAAA,CAAoBK,QAAQ,cAAAL,UAAA,uBAA5BA,UAAA,CAA8BM,WAAW,cAAAP,qBAAA,cAAAA,qBAAA,GAAIlB,aAAa,CAACoB,IAAI,CAAChI,EAAE,CAAC;IACpF,IAAI,CAACiI,UAAU,IAAI,CAACC,QAAQ,IAAID,UAAU,KAAKC,QAAQ,EAAE;IACzD,IAAMI,UAAU,GAAArP,kBAAA,CAAO4N,aAAa,CAACoB,UAAU,CAAC,CAAC;IACjD,IAAMM,QAAQ,GAAAtP,kBAAA,CAAO4N,aAAa,CAACqB,QAAQ,CAAC,CAAC;IAC7C,IAAMM,WAAW,GAAGF,UAAU,CAACpN,OAAO,CAACyM,MAAM,CAAC3H,EAAE,CAAC;IACjD,IAAMyI,SAAS,GAAGF,QAAQ,CAACrN,OAAO,CAAC8M,IAAI,CAAChI,EAAE,CAAC;IAC3C,IAAIwI,WAAW,KAAK,CAAC,CAAC,EAAE;IACxB,IAAID,QAAQ,CAACpK,QAAQ,CAACwJ,MAAM,CAAC3H,EAAE,CAAC,EAAE;IAClCsI,UAAU,CAACI,MAAM,CAACF,WAAW,EAAE,CAAC,CAAC;IACjC,IAAMG,QAAQ,GAAGF,SAAS,IAAI,CAAC,GAAGA,SAAS,GAAGF,QAAQ,CAACnO,MAAM;IAC7DmO,QAAQ,CAACG,MAAM,CAACC,QAAQ,EAAE,CAAC,EAAEhB,MAAM,CAAC3H,EAAE,CAAC;IACvC+G,gBAAgB,CAACkB,UAAU,CAAC,CAACK,UAAU,CAAC;IACxCvB,gBAAgB,CAACmB,QAAQ,CAAC,CAACK,QAAQ,CAAC;EACtC,CAAC;EAED,IAAMK,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,KAAA,EAAyB;IAAA,IAAAC,sBAAA,EAAAC,WAAA;IAAA,IAAnBpB,MAAM,GAAAkB,KAAA,CAANlB,MAAM;MAAEK,IAAI,GAAAa,KAAA,CAAJb,IAAI;IACnC5E,WAAW,CAAC,IAAI,CAAC;IACjB,IAAI,CAAC4E,IAAI,EAAE;IACX,IAAMC,UAAU,GAAGrB,aAAa,CAACe,MAAM,CAAC3H,EAAE,CAAC;IAC3C,IAAMkI,QAAQ,IAAAY,sBAAA,IAAAC,WAAA,GAAGf,IAAI,CAACG,IAAI,cAAAY,WAAA,gBAAAA,WAAA,GAATA,WAAA,CAAWhI,OAAO,cAAAgI,WAAA,gBAAAA,WAAA,GAAlBA,WAAA,CAAoBX,QAAQ,cAAAW,WAAA,uBAA5BA,WAAA,CAA8BV,WAAW,cAAAS,sBAAA,cAAAA,sBAAA,GAAIlC,aAAa,CAACoB,IAAI,CAAChI,EAAE,CAAC;IACpF,IAAI,CAACiI,UAAU,IAAI,CAACC,QAAQ,EAAE;IAC9B,IAAID,UAAU,KAAKC,QAAQ,EAAE;MAC3B,IAAMc,IAAI,GAAGnC,aAAa,CAACoB,UAAU,CAAC;MACtC,IAAMgB,QAAQ,GAAGD,IAAI,CAAC9N,OAAO,CAACyM,MAAM,CAAC3H,EAAE,CAAC;MACxC,IAAMkJ,QAAQ,GAAGF,IAAI,CAAC9N,OAAO,CAAC8M,IAAI,CAAChI,EAAE,CAAC;MACtC,IAAIiJ,QAAQ,KAAKC,QAAQ,EAAEnC,gBAAgB,CAACkB,UAAU,CAAC,CAAC,IAAAkB,mBAAS,EAACH,IAAI,EAAEC,QAAQ,EAAEC,QAAQ,CAAC,CAAC;IAC9F;EACF,CAAC;;EAED;EACA,IAAME,MAAM,GAAG,SAATA,MAAMA,CAAGC,QAAQ;IAAA,OAAItG,OAAO,CAACF,YAAY,KAAKwG,QAAQ;EAAA;EAC5D,IAAMC,cAAc,GAAG,EAAAjH,qBAAA,GAAC4B,WAAW,CAACF,cAAc,CAAC,cAAA1B,qBAAA,gBAAAC,sBAAA,GAA3BD,qBAAA,CAAAtJ,IAAA,CAAAkL,WAAW,EAAmB,EAAE,CAAC,cAAA3B,sBAAA,gBAAAA,sBAAA,GAAjCA,sBAAA,CAAoC,CAAC,cAAAA,sBAAA,uBAArCA,sBAAA,CAAuCiH,SAAS,KAAK,CAAC;EAC9E,IAAMC,kBAAkB,GAAIpF,YAAY,IAAIE,SAAS,GAAIF,YAAY,GAAGvN,MAAM,CAAC+C,IAAI,CAAC0K,SAAS,CAAC,CAAC,CAAC,CAAC;EAEjG,IAAMmF,SAAS,GAAG;IAChBC,UAAU,EAAE;MAAEC,SAAS,EAAE,GAAG;MAAEC,SAAS,EAAE,GAAG;MAAE1N,IAAI,EAAE;IAAe,CAAC;IACpE2N,YAAY,EAAE;MAAEF,SAAS,EAAE,GAAG;MAAEC,SAAS,EAAE,GAAG;MAAE1N,IAAI,EAAE;IAAe,CAAC;IACtE4N,YAAY,EAAE;MAAEH,SAAS,EAAE,GAAG;MAAEC,SAAS,EAAE,GAAG;MAAE1N,IAAI,EAAE;IAAa;EACrE,CAAC;;EAED;EACA,IAAM6N,aAAa,GAAG;IACpBvN,UAAU,EAAEkG,UAAU,CAAClG,UAAU;IACjCyF,QAAQ,EAAEc,OAAO,CAACd,QAAQ;IAC1BC,SAAS,EAAEa,OAAO,CAACb;EACrB,CAAC;EAED,IAAM8H,eAAe,GAAG;IACtB1I,KAAK,EAAEyI,aAAa;IACpBtN,WAAW,EAAXA,WAAW;IACX8E,OAAO,EAAPA,OAAO;IACP5E,SAAS,EAATA,SAAS;IACTC,iBAAiB,EAAE+F,OAAO,CAAC/F,iBAAiB;IAC5CC,iBAAiB,EAAE8F,OAAO,CAAC9F,iBAAiB;IAC5CC,kBAAkB,EAAlBA,kBAAkB;IAClBC,sBAAsB,EAAE4F,OAAO,CAAC5F;EAClC,CAAC;EAED,IAAMkN,cAAc,GAAG;IACrB9B,IAAI,EAAEzF,UAAU,CAACwH,iBAAiB;IAClCzG,IAAI,EAAJA,IAAI;IACJE,IAAI,EAAJA,IAAI;IACJE,IAAI,EAAJA,IAAI;IACJE,cAAc,EAAdA,cAAc;IACdE,WAAW,EAAXA,WAAW;IACXG,YAAY,EAAZA,YAAY;IACZE,SAAS,EAATA,SAAS;IACT7H,WAAW,EAAXA,WAAW;IACX8E,OAAO,EAAPA,OAAO;IACP5E,SAAS,EAATA,SAAS;IACTiI,uBAAuB,EAAvBA,uBAAuB;IACvBE,gBAAgB,EAAhBA,gBAAgB;IAChBE,qBAAqB,EAArBA,qBAAqB;IACrBE,kBAAkB,EAAlBA,kBAAkB;IAClBE,UAAU,EAAVA,UAAU;IACVE,IAAI,EAAJA,IAAI;IACJE,QAAQ,EAARA,QAAQ;IACRE,QAAQ,EAARA,QAAQ;IACRE,QAAQ,EAARA,QAAQ;IACRuE,iBAAiB,EAAE1H,UAAU,CAAC0H,iBAAiB;IAC/CC,YAAY,EAAE3H,UAAU,CAAC2H,YAAY;IACrCC,cAAc,EAAE5H,UAAU,CAAC4H,cAAc;IACzCrE,cAAc,EAAdA,cAAc;IACdE,YAAY,EAAZA,YAAY;IACZC,mBAAmB,EAAnBA;EACF,CAAC;EAED,IAAMmE,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;IACzB,IAAMC,SAAS,GAAG,IAAIC,oBAAS,CAACP,cAAc,CAAC;IAC/C,IAAMQ,cAAc,GAAGF,SAAS,CAACG,UAAU,CAAC,CAAC,CAACtQ,MAAM;IACpD,IAAMuQ,YAAY,GAAGjI,UAAU,CAACwH,iBAAiB,CAAC9P,MAAM;IACxD,IAAMwQ,UAAU,GAAGC,IAAI,CAACC,IAAI,CAACL,cAAc,GAAGjF,QAAQ,CAAC;IACvD,oBACErO,MAAA,YAAAyH,aAAA;MAAKE,SAAS,EAAC;IAAW,gBACxB3H,MAAA,YAAAyH,aAAA;MAAKE,SAAS,EAAC;IAAe,GAAC,mBAAiB,EAAC6L,YAAY,EAAC,YAAU,EAACF,cAAoB,CAAC,eAC9FtT,MAAA,YAAAyH,aAAA;MAAKE,SAAS,EAAC;IAAqB,gBAClC3H,MAAA,YAAAyH,aAAA;MAAQE,SAAS,EAAC,WAAW;MAACiM,QAAQ,EAAEzF,IAAI,IAAI,CAAE;MAACpG,OAAO,EAAE,SAATA,OAAOA,CAAA;QAAA,OAAQyD,OAAO,CAACqE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;MAAA;IAAC,GAAC,MAAS,CAAC,eAC3G7P,MAAA,YAAAyH,aAAA;MAAQE,SAAS,EAAC,WAAW;MAACiM,QAAQ,EAAEzF,IAAI,IAAI,CAAE;MAACpG,OAAO,EAAE,SAATA,OAAOA,CAAA;QAAA,OAAQyD,OAAO,CAACqE,UAAU,CAAC,MAAM,EAAE1B,IAAI,GAAG,CAAC,CAAC;MAAA;IAAC,GAAC,QAAS,CAAC,eAClHnO,MAAA,YAAAyH,aAAA,eAAM,YAAO,eAAAzH,MAAA,YAAAyH,aAAA;MAAOO,IAAI,EAAC,QAAQ;MAACL,SAAS,EAAC,cAAc;MAAC9H,KAAK,EAAEsO,IAAK;MAAC0F,GAAG,EAAE,CAAE;MAACC,GAAG,EAAEL,UAAW;MAACvL,QAAQ,EAAE,SAAVA,QAAQA,CAAEpH,CAAC,EAAI;QAC9G,IAAMiT,GAAG,GAAGC,QAAQ,CAAClT,CAAC,CAACqH,MAAM,CAACtI,KAAK,EAAE,EAAE,CAAC;QACxC,IAAIkU,GAAG,GAAG,CAAC,IAAIA,GAAG,IAAIN,UAAU,EAAEjI,OAAO,CAACqE,UAAU,CAAC,MAAM,EAAEkE,GAAG,CAAC;MACnE;IAAE,CAAE,CAAC,QAAI,EAACN,UAAiB,CAAC,eAC5BzT,MAAA,YAAAyH,aAAA;MAAQE,SAAS,EAAC,WAAW;MAACiM,QAAQ,EAAEzF,IAAI,IAAIsF,UAAW;MAAC1L,OAAO,EAAE,SAATA,OAAOA,CAAA;QAAA,OAAQyD,OAAO,CAACqE,UAAU,CAAC,MAAM,EAAE1B,IAAI,GAAG,CAAC,CAAC;MAAA;IAAC,GAAC,QAAS,CAAC,eAC3HnO,MAAA,YAAAyH,aAAA;MAAQE,SAAS,EAAC,WAAW;MAACiM,QAAQ,EAAEzF,IAAI,IAAIsF,UAAW;MAAC1L,OAAO,EAAE,SAATA,OAAOA,CAAA;QAAA,OAAQyD,OAAO,CAACqE,UAAU,CAAC,MAAM,EAAE4D,UAAU,CAAC;MAAA;IAAC,GAAC,MAAS,CAAC,eAC7HzT,MAAA,YAAAyH,aAAA;MAAQE,SAAS,EAAC,aAAa;MAAC9H,KAAK,EAAEwO,QAAS;MAACnG,QAAQ,EAAE,SAAVA,QAAQA,CAAEpH,CAAC,EAAI;QAC9D0K,OAAO,CAACqE,UAAU,CAAC,UAAU,EAAEmE,QAAQ,CAAClT,CAAC,CAACqH,MAAM,CAACtI,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5D2L,OAAO,CAACqE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;MAC/B;IAAE,GAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAACxH,GAAG,CAAC,UAAAlH,CAAC;MAAA,oBAAInB,MAAA,YAAAyH,aAAA;QAAQa,GAAG,EAAEnH,CAAE;QAACtB,KAAK,EAAEsB;MAAE,GAAEA,CAAC,EAAC,WAAc,CAAC;IAAA,EAAU,CAClF,CACF,CAAC;EAEV,CAAC;EAED,oBACEnB,MAAA,YAAAyH,aAAA,CAAC/G,KAAA,CAAAuT,UAAU;IAACjE,OAAO,EAAEA,OAAQ;IAACkE,kBAAkB,EAAEC,oBAAe;IAACC,WAAW,EAAE9D,eAAgB;IAAC+D,UAAU,EAAE5D,cAAe;IAAC6D,SAAS,EAAE7C;EAAc,gBACnJzR,MAAA,YAAAyH,aAAA;IAAOE,SAAS,qBAAA4M,MAAA,CAAqBtJ,KAAK,CAACuJ,KAAK,IAAI,SAAS,gBAAAD,MAAA,CAAa5F,IAAI,IAAI,IAAI;EAAG,gBACvF3O,MAAA,YAAAyH,aAAA;IAAOM,OAAO,EAAE,SAATA,OAAOA,CAAA;MAAA,OAAQ8D,UAAU,CAAC,UAAAO,CAAC;QAAA,OAAArJ,aAAA,CAAAA,aAAA,KAAUqJ,CAAC;UAAEV,YAAY,EAAE;QAAK;MAAA,CAAG,CAAC;IAAA;EAAC,GACpE4D,WAAW,gBACVtP,MAAA,YAAAyH,aAAA,CAAAzH,MAAA,YAAAyU,QAAA,qBACEzU,MAAA,YAAAyH,aAAA,0BACEzH,MAAA,YAAAyH,aAAA;IAAIE,SAAS,EAAC;EAAc,gBAC1B3H,MAAA,YAAAyH,aAAA,CAAC3H,QAAQ;IAAC8J,OAAO,EAAEyI,kBAAmB;IAAC/K,MAAM,EAAE5H,MAAM,CAAC+C,IAAI,CAAC0K,SAAS,CAAE;IAAChH,IAAI,EAAE8L,MAAM,CAAC,UAAU,CAAE;IAACpM,MAAM,EAAEoM,MAAM,CAAC,UAAU,CAAC,GAAGrG,OAAO,CAACb,SAAS,GAAG,CAAC,GAAG,CAAE;IAACpB,MAAM,EAAE,SAARA,MAAMA,CAAA;MAAA,OAAQkC,UAAU,CAAC,UAAAO,CAAC;QAAA,OAAArJ,aAAA,CAAAA,aAAA,KAAUqJ,CAAC;UAAEV,YAAY,EAAEuG,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG;QAAU;MAAA,CAAG,CAAC;IAAA,CAAC;IAACnI,QAAQ,EAAE,SAAVA,QAAQA,CAAE4K,CAAC;MAAA,OAAIlJ,OAAO,CAACqE,UAAU,CAAC,cAAc,EAAE6E,CAAC,CAAC;IAAA;EAAC,CAAE,CAChT,CAAC,eACL1U,MAAA,YAAAyH,aAAA,CAACsC,OAAO,EAAA9F,QAAA;IAAC4E,EAAE,EAAC,QAAQ;IAACoB,KAAK,EAAEgF,WAAY;IAAC/E,OAAO,2CAA4C;IAACG,YAAY,EAAE;EAAK,GAAKwI,eAAe,CAAG,CACrI,CAAC,eACL7S,MAAA,YAAAyH,aAAA,0BACEzH,MAAA,YAAAyH,aAAA;IAAIE,SAAS,EAAC;EAAS,gBACrB3H,MAAA,YAAAyH,aAAA,CAAC3H,QAAQ;IAAC8J,OAAO,EAAEgD,cAAe;IAACtF,MAAM,EAAE5H,MAAM,CAAC+C,IAAI,CAACqK,WAAW,CAAE;IAAC3G,IAAI,EAAE8L,MAAM,CAAC,aAAa,CAAE;IAACpM,MAAM,EAAEoM,MAAM,CAAC,aAAa,CAAC,GAAGrG,OAAO,CAACb,SAAS,GAAG,CAAC,GAAG,CAAE;IAACpB,MAAM,EAAE,SAARA,MAAMA,CAAA;MAAA,OAAQkC,UAAU,CAAC,UAAAO,CAAC;QAAA,OAAArJ,aAAA,CAAAA,aAAA,KAAUqJ,CAAC;UAAEV,YAAY,EAAEuG,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,GAAG;QAAa;MAAA,CAAG,CAAC;IAAA,CAAC;IAACnI,QAAQ,EAAE,SAAVA,QAAQA,CAAE4K,CAAC;MAAA,OAAIlJ,OAAO,CAACqE,UAAU,CAAC,gBAAgB,EAAE6E,CAAC,CAAC;IAAA;EAAC,CAAE,CAAC,eAC/T1U,MAAA,YAAAyH,aAAA;IAAGW,IAAI,EAAC,QAAQ;IAACT,SAAS,EAAC,aAAa;IAACI,OAAO,EAAE,SAATA,OAAOA,CAAA;MAAA,OAAQyD,OAAO,CAACqE,UAAU,CAAC,UAAU,EAAEyC,SAAS,CAAC/D,QAAQ,CAAC,CAACxJ,IAAI,CAAC;IAAA;EAAC,GAAEuN,SAAS,CAAC/D,QAAQ,CAAC,CAACiE,SAAa,CAAC,eACrJxS,MAAA,YAAAyH,aAAA;IAAGW,IAAI,EAAC,QAAQ;IAACT,SAAS,EAAC,aAAa;IAACI,OAAO,EAAE,SAATA,OAAOA,CAAA;MAAA,OAAQyD,OAAO,CAACqE,UAAU,CAAC,UAAU,EAAEyC,SAAS,CAAC7D,QAAQ,CAAC,CAAC1J,IAAI,CAAC;IAAA;EAAC,GAAEuN,SAAS,CAAC7D,QAAQ,CAAC,CAACgE,SAAa,CAAC,EACpJN,cAAc,GAAG,CAAC,iBAAInS,MAAA,YAAAyH,aAAA,WAAK,CAAC,EAC5B,IAAIrF,KAAK,CAAC+P,cAAc,CAAC,CAACwC,IAAI,CAAC,IAAI,CAAC,CAACtM,GAAG,CAAC,UAACuM,CAAC,EAAExT,CAAC;IAAA,OAAK,cAClDpB,MAAA,YAAAyH,aAAA,CAAC3H,QAAQ;MAACwI,GAAG,EAAElH,CAAE;MAACwI,OAAO,EAAE8C,IAAI,CAACtL,CAAC,CAAE;MAACkG,MAAM,EAAE5H,MAAM,CAAC+C,IAAI,CAAC8I,UAAU,CAAClG,UAAU,CAAC,CAAC1C,MAAM,CAAC,UAAA7B,CAAC;QAAA,OAAI,CAAC6M,gBAAgB,CAAC3G,QAAQ,CAAClG,CAAC,CAAC,IAAI,CAAC+M,qBAAqB,CAAC7G,QAAQ,CAAClG,CAAC,CAAC;MAAA,EAAE;MAACqF,IAAI,EAAE8L,MAAM,OAAAsC,MAAA,CAAOnT,CAAC,CAAE,CAAE;MAACyE,MAAM,EAAEoM,MAAM,OAAAsC,MAAA,CAAOnT,CAAC,CAAE,CAAC,GAAGwK,OAAO,CAACb,SAAS,GAAG,CAAC,GAAG,CAAE;MAACpB,MAAM,EAAE,SAARA,MAAMA,CAAA;QAAA,OAAQkC,UAAU,CAAC,UAAAO,CAAC;UAAA,OAAArJ,aAAA,CAAAA,aAAA,KAAUqJ,CAAC;YAAEV,YAAY,EAAEuG,MAAM,OAAAsC,MAAA,CAAOnT,CAAC,CAAE,CAAC,GAAG,KAAK,SAAAmT,MAAA,CAASnT,CAAC;UAAE;QAAA,CAAG,CAAC;MAAA,CAAC;MAAC0I,QAAQ,EAAE,SAAVA,QAAQA,CAAEjK,KAAK,EAAI;QAAE,IAAMgV,OAAO,GAAA/S,kBAAA,CAAO4K,IAAI,CAAC;QAAEmI,OAAO,CAACzT,CAAC,CAAC,GAAGvB,KAAK;QAAE2L,OAAO,CAACqE,UAAU,CAAC,MAAM,EAAEgF,OAAO,CAAC;MAAE;IAAE,CAAE,CAAC,EAC/bzT,CAAC,GAAG,CAAC,KAAK+Q,cAAc,gBAAGnS,MAAA,YAAAyH,aAAA;MAAIa,GAAG,OAAAiM,MAAA,CAAOnT,CAAC;IAAG,CAAE,CAAC,GAAG,IAAI,CACxD;EAAA,EACC,CAAC,eACLpB,MAAA,YAAAyH,aAAA,CAACsC,OAAO,EAAA9F,QAAA;IAAC4E,EAAE,EAAC,MAAM;IAACoB,KAAK,EAAEsF,QAAS;IAACrF,OAAO,EAAC,uCAAuC;IAACG,YAAY,EAAE;EAAK,GAAKwI,eAAe,CAAG,CAC5H,CAAC,eACL7S,MAAA,YAAAyH,aAAA,0BACEzH,MAAA,YAAAyH,aAAA,CAACsC,OAAO,EAAA9F,QAAA;IAAC4E,EAAE,EAAC,MAAM;IAACoB,KAAK,EAAEuF,QAAS;IAACtF,OAAO,EAAC,sCAAsC;IAACG,YAAY,EAAE;EAAM,GAAKwI,eAAe,CAAG,CAAC,eAC/H7S,MAAA,YAAAyH,aAAA;IAAIE,SAAS,EAAC;EAAW,gBACvB3H,MAAA,YAAAyH,aAAA,CAACnH,WAAA,WAAU,EAAKwS,cAAiB,CAAC,EACjC7E,UAAU,IAAIkF,YAAY,CAAC,CAC1B,CACF,CACJ,CAAC,gBAEHnT,MAAA,YAAAyH,aAAA,CAAAzH,MAAA,YAAAyU,QAAA,qBACEzU,MAAA,YAAAyH,aAAA,0BACEzH,MAAA,YAAAyH,aAAA;IAAIE,SAAS,EAAC;EAAc,gBAC1B3H,MAAA,YAAAyH,aAAA,CAAC3H,QAAQ;IAAC8J,OAAO,EAAEyI,kBAAmB;IAAC/K,MAAM,EAAE5H,MAAM,CAAC+C,IAAI,CAAC0K,SAAS,CAAE;IAAChH,IAAI,EAAE8L,MAAM,CAAC,UAAU,CAAE;IAACpM,MAAM,EAAEoM,MAAM,CAAC,UAAU,CAAC,GAAGrG,OAAO,CAACb,SAAS,GAAG,CAAC,GAAG,CAAE;IAACpB,MAAM,EAAE,SAARA,MAAMA,CAAA;MAAA,OAAQkC,UAAU,CAAC,UAAAO,CAAC;QAAA,OAAArJ,aAAA,CAAAA,aAAA,KAAUqJ,CAAC;UAAEV,YAAY,EAAEuG,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG;QAAU;MAAA,CAAG,CAAC;IAAA,CAAC;IAACnI,QAAQ,EAAE,SAAVA,QAAQA,CAAE4K,CAAC;MAAA,OAAIlJ,OAAO,CAACqE,UAAU,CAAC,cAAc,EAAE6E,CAAC,CAAC;IAAA;EAAC,CAAE,CAChT,CAAC,eACL1U,MAAA,YAAAyH,aAAA;IAAIE,SAAS,EAAC;EAAS,gBACrB3H,MAAA,YAAAyH,aAAA,CAAC3H,QAAQ;IAAC8J,OAAO,EAAEgD,cAAe;IAACtF,MAAM,EAAE5H,MAAM,CAAC+C,IAAI,CAACqK,WAAW,CAAE;IAAC3G,IAAI,EAAE8L,MAAM,CAAC,aAAa,CAAE;IAACpM,MAAM,EAAEoM,MAAM,CAAC,aAAa,CAAC,GAAGrG,OAAO,CAACb,SAAS,GAAG,CAAC,GAAG,CAAE;IAACpB,MAAM,EAAE,SAARA,MAAMA,CAAA;MAAA,OAAQkC,UAAU,CAAC,UAAAO,CAAC;QAAA,OAAArJ,aAAA,CAAAA,aAAA,KAAUqJ,CAAC;UAAEV,YAAY,EAAEuG,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,GAAG;QAAa;MAAA,CAAG,CAAC;IAAA,CAAC;IAACnI,QAAQ,EAAE,SAAVA,QAAQA,CAAE4K,CAAC;MAAA,OAAIlJ,OAAO,CAACqE,UAAU,CAAC,gBAAgB,EAAE6E,CAAC,CAAC;IAAA;EAAC,CAAE,CAAC,eAC/T1U,MAAA,YAAAyH,aAAA;IAAGW,IAAI,EAAC,QAAQ;IAACT,SAAS,EAAC,aAAa;IAACI,OAAO,EAAE,SAATA,OAAOA,CAAA;MAAA,OAAQyD,OAAO,CAACqE,UAAU,CAAC,UAAU,EAAEyC,SAAS,CAAC/D,QAAQ,CAAC,CAACxJ,IAAI,CAAC;IAAA;EAAC,GAAEuN,SAAS,CAAC/D,QAAQ,CAAC,CAACiE,SAAa,CAAC,eACrJxS,MAAA,YAAAyH,aAAA;IAAGW,IAAI,EAAC,QAAQ;IAACT,SAAS,EAAC,aAAa;IAACI,OAAO,EAAE,SAATA,OAAOA,CAAA;MAAA,OAAQyD,OAAO,CAACqE,UAAU,CAAC,UAAU,EAAEyC,SAAS,CAAC7D,QAAQ,CAAC,CAAC1J,IAAI,CAAC;IAAA;EAAC,GAAEuN,SAAS,CAAC7D,QAAQ,CAAC,CAACgE,SAAa,CAAC,EACpJN,cAAc,GAAG,CAAC,iBAAInS,MAAA,YAAAyH,aAAA,WAAK,CAAC,EAC5B,IAAIrF,KAAK,CAAC+P,cAAc,CAAC,CAACwC,IAAI,CAAC,IAAI,CAAC,CAACtM,GAAG,CAAC,UAACuM,CAAC,EAAExT,CAAC;IAAA,OAAK,cAClDpB,MAAA,YAAAyH,aAAA,CAAC3H,QAAQ;MAACwI,GAAG,EAAElH,CAAE;MAACwI,OAAO,EAAE8C,IAAI,CAACtL,CAAC,CAAE;MAACkG,MAAM,EAAE5H,MAAM,CAAC+C,IAAI,CAAC8I,UAAU,CAAClG,UAAU,CAAC,CAAC1C,MAAM,CAAC,UAAA7B,CAAC;QAAA,OAAI,CAAC6M,gBAAgB,CAAC3G,QAAQ,CAAClG,CAAC,CAAC,IAAI,CAAC+M,qBAAqB,CAAC7G,QAAQ,CAAClG,CAAC,CAAC;MAAA,EAAE;MAACqF,IAAI,EAAE8L,MAAM,OAAAsC,MAAA,CAAOnT,CAAC,CAAE,CAAE;MAACyE,MAAM,EAAEoM,MAAM,OAAAsC,MAAA,CAAOnT,CAAC,CAAE,CAAC,GAAGwK,OAAO,CAACb,SAAS,GAAG,CAAC,GAAG,CAAE;MAACpB,MAAM,EAAE,SAARA,MAAMA,CAAA;QAAA,OAAQkC,UAAU,CAAC,UAAAO,CAAC;UAAA,OAAArJ,aAAA,CAAAA,aAAA,KAAUqJ,CAAC;YAAEV,YAAY,EAAEuG,MAAM,OAAAsC,MAAA,CAAOnT,CAAC,CAAE,CAAC,GAAG,KAAK,SAAAmT,MAAA,CAASnT,CAAC;UAAE;QAAA,CAAG,CAAC;MAAA,CAAC;MAAC0I,QAAQ,EAAE,SAAVA,QAAQA,CAAEjK,KAAK,EAAI;QAAE,IAAMgV,OAAO,GAAA/S,kBAAA,CAAO4K,IAAI,CAAC;QAAEmI,OAAO,CAACzT,CAAC,CAAC,GAAGvB,KAAK;QAAE2L,OAAO,CAACqE,UAAU,CAAC,MAAM,EAAEgF,OAAO,CAAC;MAAE;IAAE,CAAE,CAAC,EAC/bzT,CAAC,GAAG,CAAC,KAAK+Q,cAAc,gBAAGnS,MAAA,YAAAyH,aAAA;MAAIa,GAAG,OAAAiM,MAAA,CAAOnT,CAAC;IAAG,CAAE,CAAC,GAAG,IAAI,CACxD;EAAA,EACC,CAAC,eACLpB,MAAA,YAAAyH,aAAA,CAACsC,OAAO,EAAA9F,QAAA;IAAC4E,EAAE,EAAC,MAAM;IAACoB,KAAK,EAAEsF,QAAS;IAACrF,OAAO,EAAC,uCAAuC;IAACG,YAAY,EAAE;EAAK,GAAKwI,eAAe,CAAG,CAC5H,CAAC,eACL7S,MAAA,YAAAyH,aAAA,0BACEzH,MAAA,YAAAyH,aAAA,CAACsC,OAAO,EAAA9F,QAAA;IAAC4E,EAAE,EAAC,QAAQ;IAACoB,KAAK,EAAEgF,WAAY;IAAC/E,OAAO,0CAA2C;IAACG,YAAY,EAAE;EAAM,GAAKwI,eAAe,CAAG,CAAC,eACxI7S,MAAA,YAAAyH,aAAA,CAACsC,OAAO,EAAA9F,QAAA;IAAC4E,EAAE,EAAC,MAAM;IAACoB,KAAK,EAAEuF,QAAS;IAACtF,OAAO,EAAC,sCAAsC;IAACG,YAAY,EAAE;EAAM,GAAKwI,eAAe,CAAG,CAAC,eAC/H7S,MAAA,YAAAyH,aAAA;IAAIE,SAAS,EAAC;EAAW,gBACvB3H,MAAA,YAAAyH,aAAA,CAACnH,WAAA,WAAU,EAAKwS,cAAiB,CAAC,EACjC7E,UAAU,IAAIkF,YAAY,CAAC,CAC1B,CACF,CACJ,CAEC,CACF,CAAC,eACRnT,MAAA,YAAAyH,aAAA,CAAC/G,KAAA,CAAAoU,WAAW,QAAE9I,QAAQ,gBAAGhM,MAAA,YAAAyH,aAAA;IAAIG,KAAK,EAAE;MAAE8C,SAAS,EAAE,MAAM;MAAEC,OAAO,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE;EAAE,gBAAC5K,MAAA,YAAAyH,aAAA,0BAAIzH,MAAA,YAAAyH,aAAA;IAAME,SAAS,EAAC;EAAS,GAAEqE,QAAe,CAAK,CAAK,CAAC,GAAG,IAAkB,CACtJ,CAAC;AAEjB,CAAC;AAEDhB,YAAY,CAAC+J,SAAS,GAAGrV,MAAM,CAACwE,MAAM,CAAC,CAAC,CAAC,EAAEmP,oBAAS,CAAC0B,SAAS,EAAE;EAC9D7M,QAAQ,EAAE8M,qBAAS,CAACC,IAAI,CAACC,UAAU;EACnCvH,gBAAgB,EAAEqH,qBAAS,CAACG,OAAO,CAACH,qBAAS,CAACI,MAAM,CAAC;EACrDvH,qBAAqB,EAAEmH,qBAAS,CAACG,OAAO,CAACH,qBAAS,CAACI,MAAM,CAAC;EAC1DrH,kBAAkB,EAAEiH,qBAAS,CAACG,OAAO,CAACH,qBAAS,CAACI,MAAM,CAAC;EACvD3H,uBAAuB,EAAEuH,qBAAS,CAACK,MAAM;EACzC7P,SAAS,EAAEwP,qBAAS,CAACK,MAAM;EAC3BpI,YAAY,EAAE+H,qBAAS,CAACI,MAAM;EAC9BjI,SAAS,EAAE6H,qBAAS,CAACM,QAAQ,CAACN,qBAAS,CAACC,IAAI,CAAC;EAC7CtG,IAAI,EAAEqG,qBAAS,CAACO,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;EACzC1G,cAAc,EAAEmG,qBAAS,CAACQ,IAAI;EAC9BzG,YAAY,EAAEiG,qBAAS,CAACS,MAAM;EAC9BzG,mBAAmB,EAAEgG,qBAAS,CAACC;AACjC,CAAC,CAAC;AAEFjK,YAAY,CAAC0K,YAAY,GAAGhW,MAAM,CAACwE,MAAM,CAAC,CAAC,CAAC,EAAEmP,oBAAS,CAACqC,YAAY,EAAE;EACpExN,QAAQ,EAAE,SAAVA,QAAQA,CAAA,EAAQ,CAAE,CAAC;EACnByF,gBAAgB,EAAE,EAAE;EACpBE,qBAAqB,EAAE,EAAE;EACzBE,kBAAkB,EAAE,EAAE;EACtBN,uBAAuB,EAAE,EAAE;EAC3BjI,SAAS,EAAE,GAAG;EACdyH,YAAY,EAAE,OAAO;EACrBE,SAAS,EAAEC,0BAAc;EACzByB,cAAc,EAAE,KAAK;EACrBE,YAAY,EAAE,CAAC;AACjB,CAAC,CAAC;AAAC,IAAA4G,QAAA,GAAA/V,OAAA,cAEYoL,YAAY","ignoreList":[]}
|
package/dist/TableRenderers.js
CHANGED
|
@@ -10,7 +10,9 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
10
10
|
var _Utilities = require("./Utilities");
|
|
11
11
|
var _CellPipeline = require("./core/CellPipeline");
|
|
12
12
|
var _VirtualScroller = require("./core/VirtualScroller");
|
|
13
|
+
var _useColumnResize2 = require("./hooks/useColumnResize");
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
15
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
14
16
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
15
17
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16
18
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
@@ -90,13 +92,14 @@ var toggle = function toggle(set, arr) {
|
|
|
90
92
|
};
|
|
91
93
|
function makeRenderer() {
|
|
92
94
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
// ─── Inner class (toda la lógica de render) ──────────────────────
|
|
96
|
+
var TableRendererInner = /*#__PURE__*/function (_React$PureComponent) {
|
|
97
|
+
function TableRendererInner() {
|
|
98
|
+
_classCallCheck(this, TableRendererInner);
|
|
99
|
+
return _callSuper(this, TableRendererInner, arguments);
|
|
97
100
|
}
|
|
98
|
-
_inherits(
|
|
99
|
-
return _createClass(
|
|
101
|
+
_inherits(TableRendererInner, _React$PureComponent);
|
|
102
|
+
return _createClass(TableRendererInner, [{
|
|
100
103
|
key: "render",
|
|
101
104
|
value: function render() {
|
|
102
105
|
var _this = this;
|
|
@@ -277,10 +280,64 @@ function makeRenderer() {
|
|
|
277
280
|
scrollLeft: e.currentTarget.scrollLeft
|
|
278
281
|
});
|
|
279
282
|
} : null;
|
|
283
|
+
|
|
284
|
+
// ─── Column widths (resize) ────────────────────────────────
|
|
285
|
+
var resizeWidths = this.props._resizeWidths || {};
|
|
286
|
+
var onStartResize = this.props._onStartResize || null;
|
|
287
|
+
|
|
288
|
+
// Construir colgroup con anchos de todas las columnas de datos
|
|
289
|
+
var buildColgroup = function buildColgroup() {
|
|
290
|
+
var cols = [];
|
|
291
|
+
// Col para row numbers
|
|
292
|
+
if (showRowNumbers) cols.push(/*#__PURE__*/_react["default"].createElement("col", {
|
|
293
|
+
key: "col-rownum",
|
|
294
|
+
style: {
|
|
295
|
+
width: '40px',
|
|
296
|
+
minWidth: '40px'
|
|
297
|
+
}
|
|
298
|
+
}));
|
|
299
|
+
// Cols para rowAttrs
|
|
300
|
+
rowAttrs.forEach(function (_, i) {
|
|
301
|
+
return cols.push(/*#__PURE__*/_react["default"].createElement("col", {
|
|
302
|
+
key: "col-rowattr-".concat(i)
|
|
303
|
+
}));
|
|
304
|
+
});
|
|
305
|
+
// Col padding virtual izquierdo
|
|
306
|
+
if (shouldVirt.cols && colLeftPad > 0) cols.push(/*#__PURE__*/_react["default"].createElement("col", {
|
|
307
|
+
key: "col-virt-left",
|
|
308
|
+
style: {
|
|
309
|
+
width: colLeftPad
|
|
310
|
+
}
|
|
311
|
+
}));
|
|
312
|
+
// Cols para cada columna de datos
|
|
313
|
+
visibleColKeys.forEach(function (colKey) {
|
|
314
|
+
var label = colKey.join("\0");
|
|
315
|
+
var w = resizeWidths[label];
|
|
316
|
+
cols.push(/*#__PURE__*/_react["default"].createElement("col", {
|
|
317
|
+
key: "col-data-".concat(label),
|
|
318
|
+
style: w ? {
|
|
319
|
+
width: w,
|
|
320
|
+
minWidth: w
|
|
321
|
+
} : undefined
|
|
322
|
+
}));
|
|
323
|
+
});
|
|
324
|
+
// Col padding virtual derecho
|
|
325
|
+
if (shouldVirt.cols && colRightPad > 0) cols.push(/*#__PURE__*/_react["default"].createElement("col", {
|
|
326
|
+
key: "col-virt-right",
|
|
327
|
+
style: {
|
|
328
|
+
width: colRightPad
|
|
329
|
+
}
|
|
330
|
+
}));
|
|
331
|
+
// Col para totales
|
|
332
|
+
cols.push(/*#__PURE__*/_react["default"].createElement("col", {
|
|
333
|
+
key: "col-totals"
|
|
334
|
+
}));
|
|
335
|
+
return /*#__PURE__*/_react["default"].createElement("colgroup", null, cols);
|
|
336
|
+
};
|
|
280
337
|
var tableContent = /*#__PURE__*/_react["default"].createElement("table", {
|
|
281
338
|
id: id,
|
|
282
|
-
className: "pvtTable ".concat(rbClass, " ").concat(cbClass)
|
|
283
|
-
}, /*#__PURE__*/_react["default"].createElement("thead", null, colAttrs.map(function (c, j) {
|
|
339
|
+
className: "pvtTable ".concat(rbClass, " ").concat(cbClass).concat(onStartResize ? ' pvtResizable' : '')
|
|
340
|
+
}, buildColgroup(), /*#__PURE__*/_react["default"].createElement("thead", null, colAttrs.map(function (c, j) {
|
|
284
341
|
var clickable = grouping && colAttrs.length > j + 1;
|
|
285
342
|
var levelKeys = allColKeys.filter(function (x) {
|
|
286
343
|
return x.length === j + 1;
|
|
@@ -308,15 +365,23 @@ function makeRenderer() {
|
|
|
308
365
|
if (x === -1) {
|
|
309
366
|
return null;
|
|
310
367
|
}
|
|
368
|
+
// Usar el colKey completo como clave de resize solo en la última fila de headers
|
|
369
|
+
var isLastHeaderRow = j === colAttrs.length - 1;
|
|
370
|
+
var colLabel = colKey.join("\0");
|
|
311
371
|
return /*#__PURE__*/_react["default"].createElement("th", {
|
|
312
372
|
className: "pvtColLabel" + clickClass(clickable && colKey[j], isFolded([colKey.slice(0, j + 1)])),
|
|
313
373
|
key: "colKey-".concat(i, "-").concat(j, "-").concat(colKey[j]),
|
|
314
374
|
colSpan: x,
|
|
315
|
-
rowSpan:
|
|
375
|
+
rowSpan: isLastHeaderRow && rowAttrs.length !== 0 ? 2 : 1,
|
|
316
376
|
onClick: clickable && colKey[j] ? function (_) {
|
|
317
377
|
return fold([colKey.slice(0, j + 1)]);
|
|
318
378
|
} : null
|
|
319
|
-
}, colKey[j]
|
|
379
|
+
}, colKey[j], onStartResize && isLastHeaderRow && /*#__PURE__*/_react["default"].createElement("span", {
|
|
380
|
+
className: "pvtResizeHandle",
|
|
381
|
+
onPointerDown: function onPointerDown(e) {
|
|
382
|
+
return onStartResize(colLabel, e);
|
|
383
|
+
}
|
|
384
|
+
}));
|
|
320
385
|
}), shouldVirt.cols && colRightPad > 0 && j === 0 && /*#__PURE__*/_react["default"].createElement("th", {
|
|
321
386
|
key: "col-pad-right",
|
|
322
387
|
style: {
|
|
@@ -499,16 +564,44 @@ function makeRenderer() {
|
|
|
499
564
|
}
|
|
500
565
|
}]);
|
|
501
566
|
}(_react["default"].PureComponent);
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
567
|
+
TableRendererInner.defaultProps = _Utilities.PivotData.defaultProps;
|
|
568
|
+
TableRendererInner.propTypes = _Utilities.PivotData.propTypes;
|
|
569
|
+
TableRendererInner.defaultProps.tableColorScaleGenerator = redColorScaleGenerator;
|
|
570
|
+
TableRendererInner.defaultProps.tableOptions = {};
|
|
571
|
+
TableRendererInner.propTypes.tableColorScaleGenerator = _propTypes["default"].func;
|
|
572
|
+
TableRendererInner.propTypes.tableOptions = _propTypes["default"].object;
|
|
573
|
+
TableRendererInner.defaultProps.compactRows = true;
|
|
574
|
+
TableRendererInner.propTypes.compactRows = _propTypes["default"].bool;
|
|
575
|
+
TableRendererInner.defaultProps.showRowNumbers = true;
|
|
576
|
+
TableRendererInner.propTypes.showRowNumbers = _propTypes["default"].bool;
|
|
577
|
+
// Resize props (pasadas internamente desde el wrapper)
|
|
578
|
+
TableRendererInner.propTypes._resizeWidths = _propTypes["default"].object;
|
|
579
|
+
TableRendererInner.propTypes._onStartResize = _propTypes["default"].func;
|
|
580
|
+
|
|
581
|
+
// ─── Wrapper funcional para poder usar hooks ─────────────────────
|
|
582
|
+
function TableRenderer(props) {
|
|
583
|
+
var resizing = props.columnResizing === true;
|
|
584
|
+
var _useColumnResize = (0, _useColumnResize2.useColumnResize)({
|
|
585
|
+
initialWidths: props.columnWidths || {},
|
|
586
|
+
minWidth: 50,
|
|
587
|
+
onWidthChange: props.onColumnWidthChange
|
|
588
|
+
}),
|
|
589
|
+
widths = _useColumnResize.widths,
|
|
590
|
+
startResize = _useColumnResize.startResize;
|
|
591
|
+
return /*#__PURE__*/_react["default"].createElement(TableRendererInner, _extends({}, props, {
|
|
592
|
+
_resizeWidths: resizing ? widths : {},
|
|
593
|
+
_onStartResize: resizing ? startResize : null
|
|
594
|
+
}));
|
|
595
|
+
}
|
|
596
|
+
TableRenderer.defaultProps = _objectSpread(_objectSpread({}, TableRendererInner.defaultProps), {}, {
|
|
597
|
+
columnResizing: false,
|
|
598
|
+
columnWidths: {}
|
|
599
|
+
});
|
|
600
|
+
TableRenderer.propTypes = _objectSpread(_objectSpread({}, TableRendererInner.propTypes), {}, {
|
|
601
|
+
columnResizing: _propTypes["default"].bool,
|
|
602
|
+
columnWidths: _propTypes["default"].object,
|
|
603
|
+
onColumnWidthChange: _propTypes["default"].func
|
|
604
|
+
});
|
|
512
605
|
return TableRenderer;
|
|
513
606
|
}
|
|
514
607
|
var TSVExportRenderer = /*#__PURE__*/function (_React$PureComponent2) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableRenderers.js","names":["_react","_interopRequireDefault","require","_propTypes","_Utilities","_CellPipeline","_VirtualScroller","e","__esModule","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","_createForOfIteratorHelper","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","_n","F","s","n","done","f","TypeError","a","u","call","next","_arrayLikeToArray","toString","slice","constructor","name","from","test","_classCallCheck","_defineProperties","key","_createClass","prototype","i","_toPrimitive","_typeof","toPrimitive","String","Number","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_assertThisInitialized","ReferenceError","Boolean","valueOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","create","_setPrototypeOf","spanSize","arr","j","no_loop","undefined","x","asc","end","noDraw","len","asc1","end1","stop","redColorScaleGenerator","values","min","Math","max","nonRed","round","backgroundColor","concat","flatKey","join","fromCharCode","has","set","every","add","remove","toggle","makeRenderer","opts","TableRenderer","_React$PureComponent","render","_this","pivotData","PivotData","props","id","colAttrs","cols","rowAttrs","rows","rowKeys","getRowKeys","colKeys","getColKeys","grandTotalAggregator","getAggregator","pipeline","cellPipeline","CellPipeline","virtConfig","virtualization","scroller","VirtualScroller","enabled","rowHeight","colWidth","overscanRows","overscanCols","containerHeight","containerWidth","threshold","grouping","compactRows","specialCase","rowGroupBefore","folded","state","Set","isFolded","map","fold","setState","_iterator","_step","_loop","colKey","startsWith","rowKey","err","allColKeys","allRowKeys","totalRows","startOffset","pagination","start","page","pageSize","shouldVirt","shouldVirtualize","scrollTop","scrollLeft","visibleRowKeys","rowTopPad","rowBottomPad","virtualRowStartOffset","rowRange","getVisibleRowRange","startIndex","endIndex","topPadding","bottomPadding","visibleColKeys","colLeftPad","colRightPad","colRange","getVisibleColRange","leftPadding","rightPadding","showRowNumbers","isVirtualized","valueCellColors","rowTotalColors","colTotalColors","heatmapMode","colorScaleGenerator","tableColorScaleGenerator","rowTotalValues","colTotalValues","allValues","c","colorScale","v","rowColorScales","rowValues","colColorScales","colValues","getClickHandler","tableOptions","clickCallback","filters","_i","_Object$keys","attr","_i2","_Object$keys2","rbClass","cbClass","colGroupBefore","clickClass","pred","closed","handleScroll","currentTarget","tableContent","createElement","className","clickable","levelKeys","rowSpan","colSpan","onClick","_","style","minWidth","height","localI","globalI","totalAggregator","rowGap","rowTotalResult","processTotal","aggregator","type","txt","paddingLeft","colGap","cellResult","process","isNumeric","mergedStyle","rendered","padIdx","totalVal","format","maxHeight","maxWidth","overflow","position","onScroll","React","PureComponent","defaultProps","propTypes","PropTypes","func","object","bool","TSVExportRenderer","_React$PureComponent2","headerRow","aggregatorName","result","row","unshift","width","window","innerWidth","innerHeight","readOnly","_default","exports","Table"],"sources":["../src/TableRenderers.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { PivotData } from './Utilities';\nimport { CellPipeline } from './core/CellPipeline';\nimport { VirtualScroller } from './core/VirtualScroller';\n\n// helper function for setting row/col-span in pivotTableRenderer\nconst spanSize = function (arr, i, j, no_loop = false) {\n let x;\n if (i !== 0) {\n let asc, end;\n let noDraw = true;\n for (\n x = 0, end = j, asc = end >= 0;\n asc ? x <= end : x >= end;\n asc ? x++ : x--\n ) {\n if (arr[i - 1][x] !== arr[i][x]) {\n noDraw = false;\n }\n }\n if (noDraw) {\n return -1;\n }\n }\n let len = 0;\n while (i + len < arr.length) {\n let asc1, end1;\n let stop = false;\n for (\n x = no_loop ? j : 0, end1 = j, asc1 = end1 >= 0;\n asc1 ? x <= end1 : x >= end1;\n asc1 ? x++ : x--\n ) {\n if (arr[i][x] !== arr[i + len][x]) {\n stop = true;\n }\n }\n if (stop) {\n break;\n }\n len++;\n }\n return len;\n};\n\nfunction redColorScaleGenerator(values) {\n const min = Math.min.apply(Math, values);\n const max = Math.max.apply(Math, values);\n return x => {\n // eslint-disable-next-line no-magic-numbers\n const nonRed = 255 - Math.round((255 * (x - min)) / (max - min));\n return { backgroundColor: `rgb(255,${nonRed},${nonRed})` };\n };\n}\n\nconst flatKey = arr => arr.join(String.fromCharCode(0));\nconst has = (set, arr) => arr.every(set.has, set);\nconst add = (set, arr) => (arr.forEach(set.add, set) || set);\nconst remove = (set, arr) => (arr.forEach(set.delete, set) || set);\nconst toggle = (set, arr) => (has(set, arr) ? remove : add)(set, arr);\n\nfunction makeRenderer(opts = {}) {\n class TableRenderer extends React.PureComponent {\n render() {\n const pivotData = new PivotData(this.props);\n const id = pivotData.props.id;\n const colAttrs = pivotData.props.cols;\n const rowAttrs = pivotData.props.rows;\n let rowKeys = pivotData.getRowKeys(true);\n let colKeys = pivotData.getColKeys(true);\n const grandTotalAggregator = pivotData.getAggregator([], []);\n\n // ─── Cell Pipeline ────────────────────────────────────────────────\n const pipeline = this.props.cellPipeline\n ? new CellPipeline(this.props.cellPipeline)\n : CellPipeline.default();\n\n // ─── Virtualización ───────────────────────────────────────────────\n const virtConfig = this.props.virtualization || {};\n const scroller = new VirtualScroller({\n enabled: virtConfig.enabled !== undefined ? virtConfig.enabled : false,\n rowHeight: virtConfig.rowHeight || 32,\n colWidth: virtConfig.colWidth || 100,\n overscanRows: virtConfig.overscanRows || 5,\n overscanCols: virtConfig.overscanCols || 3,\n containerHeight: virtConfig.containerHeight || 400,\n containerWidth: virtConfig.containerWidth || 800,\n threshold: virtConfig.threshold || 100,\n });\n\n const grouping = pivotData.props.grouping;\n const compactRows = grouping && this.props.compactRows;\n // speacial case for spanSize counting (no_loop)\n const specialCase = grouping && !this.props.rowGroupBefore;\n const folded = (this.state || {}).folded || new Set();\n const isFolded = keys => has(folded, keys.map(flatKey));\n const fold = keys => this.setState({ folded: toggle(new Set(folded), keys.map(flatKey)) });\n\n if (grouping) {\n for (const key of folded) {\n colKeys = colKeys.filter(colKey => !flatKey(colKey).startsWith(key + String.fromCharCode(0)));\n rowKeys = rowKeys.filter(rowKey => !flatKey(rowKey).startsWith(key + String.fromCharCode(0)));\n }\n }\n\n // Guardar todos los colKeys para totales (SIEMPRE calcula sobre todo)\n const allColKeys = colKeys;\n const allRowKeys = rowKeys;\n\n const totalRows = rowKeys.length;\n let startOffset = 0;\n if (this.props.pagination) {\n const start = (this.props.page - 1) * this.props.pageSize;\n startOffset = start;\n const end = start + this.props.pageSize;\n rowKeys = rowKeys.slice(start, end);\n }\n\n // Aplicar virtualización bidireccional\n const shouldVirt = scroller.shouldVirtualize(rowKeys.length, colKeys.length);\n const scrollTop = (this.state || {}).scrollTop || 0;\n const scrollLeft = (this.state || {}).scrollLeft || 0;\n\n let visibleRowKeys = rowKeys;\n let rowTopPad = 0;\n let rowBottomPad = 0;\n let virtualRowStartOffset = 0;\n\n if (shouldVirt.rows) {\n const rowRange = scroller.getVisibleRowRange(scrollTop, rowKeys.length);\n visibleRowKeys = rowKeys.slice(rowRange.startIndex, rowRange.endIndex + 1);\n rowTopPad = rowRange.topPadding;\n rowBottomPad = rowRange.bottomPadding;\n virtualRowStartOffset = rowRange.startIndex;\n }\n\n let visibleColKeys = colKeys;\n let colLeftPad = 0;\n let colRightPad = 0;\n\n if (shouldVirt.cols) {\n const colRange = scroller.getVisibleColRange(scrollLeft, colKeys.length);\n visibleColKeys = colKeys.slice(colRange.startIndex, colRange.endIndex + 1);\n colLeftPad = colRange.leftPadding;\n colRightPad = colRange.rightPadding;\n }\n\n const showRowNumbers = this.props.showRowNumbers !== false;\n const isVirtualized = shouldVirt.rows || shouldVirt.cols;\n\n let valueCellColors = () => { };\n let rowTotalColors = () => { };\n let colTotalColors = () => { };\n if (opts.heatmapMode) {\n const colorScaleGenerator = this.props.tableColorScaleGenerator;\n const rowTotalValues = colKeys.map(x =>\n pivotData.getAggregator([], x).value()\n );\n rowTotalColors = colorScaleGenerator(rowTotalValues);\n const colTotalValues = rowKeys.map(x =>\n pivotData.getAggregator(x, []).value()\n );\n colTotalColors = colorScaleGenerator(colTotalValues);\n\n if (opts.heatmapMode === 'full') {\n const allValues = [];\n rowKeys.map(r =>\n colKeys.map(c =>\n allValues.push(pivotData.getAggregator(r, c).value())\n )\n );\n const colorScale = colorScaleGenerator(allValues);\n valueCellColors = (r, c, v) => colorScale(v);\n } else if (opts.heatmapMode === 'row') {\n const rowColorScales = {};\n rowKeys.map(r => {\n const rowValues = colKeys.map(x =>\n pivotData.getAggregator(r, x).value()\n );\n rowColorScales[r] = colorScaleGenerator(rowValues);\n });\n valueCellColors = (r, c, v) => rowColorScales[r](v);\n } else if (opts.heatmapMode === 'col') {\n const colColorScales = {};\n colKeys.map(c => {\n const colValues = rowKeys.map(x =>\n pivotData.getAggregator(x, c).value()\n );\n colColorScales[c] = colorScaleGenerator(colValues);\n });\n valueCellColors = (r, c, v) => colColorScales[c](v);\n }\n }\n\n const getClickHandler =\n this.props.tableOptions && this.props.tableOptions.clickCallback\n ? (value, rowValues, colValues) => {\n const filters = {};\n for (const i of Object.keys(colAttrs || {})) {\n const attr = colAttrs[i];\n if (colValues[i] !== null) {\n filters[attr] = colValues[i];\n }\n }\n for (const i of Object.keys(rowAttrs || {})) {\n const attr = rowAttrs[i];\n if (rowValues[i] !== null) {\n filters[attr] = rowValues[i];\n }\n }\n return e =>\n this.props.tableOptions.clickCallback(\n e,\n value,\n filters,\n pivotData\n );\n }\n : null;\n\n const rbClass = grouping ? this.props.rowGroupBefore ? \"rowGroupBefore\" : \"rowGroupAfter\" : \"\";\n const cbClass = grouping ? this.props.colGroupBefore ? \"colGroupBefore\" : \"colGroupAfter\" : \"\";\n const clickClass = (pred, closed) => pred ? \" pvtClickable\" + (closed ? \" closed\" : \"\") : \"\";\n // ─── Render de la tabla ────────────────────────────────────────────\n const handleScroll = isVirtualized ? (e) => {\n this.setState({\n scrollTop: e.currentTarget.scrollTop,\n scrollLeft: e.currentTarget.scrollLeft,\n });\n } : null;\n\n const tableContent = (\n <table id={id} className={`pvtTable ${rbClass} ${cbClass}`}>\n <thead>\n {colAttrs.map(function (c, j) {\n const clickable = grouping && colAttrs.length > j + 1;\n const levelKeys = allColKeys.filter(x => x.length === j + 1);\n return (\n <tr key={`colAttr${j}`}>\n {showRowNumbers && j === 0 && (\n <th className=\"pvtRowNumber pvtAxisLabel\" rowSpan={colAttrs.length + (rowAttrs.length === 0 ? 0 : 1)}>#</th>\n )}\n {j === 0 && rowAttrs.length !== 0 && (\n <th colSpan={rowAttrs.length} rowSpan={colAttrs.length} />\n )}\n <th className={\"pvtAxisLabel\" + clickClass(clickable, isFolded(levelKeys))}\n onClick={clickable ? _ => fold(levelKeys) : null}\n >{c}</th>\n {shouldVirt.cols && colLeftPad > 0 && j === 0 && (\n <th key=\"col-pad-left\" style={{ minWidth: colLeftPad }} />\n )}\n {visibleColKeys.map(function (colKey, i) {\n const x = spanSize(visibleColKeys, i, j);\n if (x === -1) {\n return null;\n }\n return (\n <th\n className={\"pvtColLabel\" + clickClass(clickable && colKey[j], isFolded([colKey.slice(0, j + 1)]))}\n key={`colKey-${i}-${j}-${colKey[j]}`}\n colSpan={x}\n rowSpan={\n j === colAttrs.length - 1 && rowAttrs.length !== 0\n ? 2\n : 1\n }\n onClick={clickable && colKey[j] ? _ => fold([colKey.slice(0, j + 1)]) : null}\n >\n {colKey[j]}\n </th>\n );\n })}\n {shouldVirt.cols && colRightPad > 0 && j === 0 && (\n <th key=\"col-pad-right\" style={{ minWidth: colRightPad }} />\n )}\n\n {j === 0 && (\n <th\n className=\"pvtTotalLabel\"\n rowSpan={\n colAttrs.length + (rowAttrs.length === 0 ? 0 : 1)\n }\n >\n Totals\n </th>\n )}\n </tr>\n );\n })}\n\n {rowAttrs.length !== 0 && (\n <tr>\n {showRowNumbers && colAttrs.length === 0 && (\n <th className=\"pvtRowNumber pvtAxisLabel\" rowSpan=\"1\">#</th>\n )}\n {rowAttrs.map(function (r, i) {\n const clickable = grouping && rowAttrs.length > i + 1;\n const levelKeys = allRowKeys.filter(x => x.length === i + 1);\n return (\n <th className={\"pvtAxisLabel\" + clickClass(clickable, isFolded(levelKeys))}\n onClick={clickable ? _ => fold(levelKeys) : null}\n key={`rowAttr${i}`}>\n {r}\n </th>\n );\n })}\n <th className=\"pvtTotalLabel\">\n {colAttrs.length === 0 ? 'Totals' : null}\n </th>\n </tr>\n )}\n </thead>\n\n <tbody>\n {/* Spacer top para virtualización de filas */}\n {shouldVirt.rows && rowTopPad > 0 && (\n <tr key=\"virt-top-spacer\" style={{ height: rowTopPad }}>\n <td colSpan={999} />\n </tr>\n )}\n\n {visibleRowKeys.map(function (rowKey, localI) {\n const globalI = shouldVirt.rows ? virtualRowStartOffset + localI : localI;\n const totalAggregator = pivotData.getAggregator(rowKey, []);\n const rowGap = rowAttrs.length - rowKey.length;\n const rowTotalResult = pipeline.processTotal({ aggregator: totalAggregator, rowKey, type: 'row' });\n return (\n <tr key={`rowKeyRow${globalI}`}\n className={(rowGap ? \"pvtLevel\" + rowGap : \"pvtData\") + \" pvtRow-data\"}\n style={shouldVirt.rows ? { height: scroller.rowHeight } : undefined}>\n {showRowNumbers && (\n <th className=\"pvtRowNumber\">{startOffset + globalI + 1}</th>\n )}\n {rowKey.map(function (txt, j) {\n if (compactRows && j < rowKey.length - 1) {\n return null;\n }\n const clickable = grouping && rowAttrs.length > j + 1;\n const x = compactRows ? 1 : spanSize(visibleRowKeys, localI, j, specialCase);\n if (x === -1) {\n return null;\n }\n return (\n <th\n key={`rowKeyLabel-${globalI}-${j}-${txt}`}\n className={\"pvtRowLabel\" + clickClass(clickable && rowKey[j], isFolded([rowKey.slice(0, j + 1)]))}\n rowSpan={x}\n colSpan={\n compactRows ?\n rowAttrs.length + 1 :\n j === rowAttrs.length - 1 && colAttrs.length !== 0\n ? 2\n : 1\n }\n style={{ paddingLeft: compactRows ? `calc(var(--pvt-row-padding, 5px) + ${j} * var(--pvt-row-indent, 20px))` : null }}\n onClick={clickable && rowKey[j] ? _ => fold([rowKey.slice(0, j + 1)]) : null}\n >\n {txt}\n </th>\n );\n })}\n {!compactRows && rowGap\n ? <th className=\"pvtRowLabel\" colSpan={rowGap + 1}>{\"Total (\" + rowKey[rowKey.length - 1] + \")\"}</th>\n : null\n }\n {/* Spacer left para virtualización de columnas */}\n {shouldVirt.cols && colLeftPad > 0 && (\n <td key=\"col-pad-left\" style={{ minWidth: colLeftPad }} />\n )}\n {visibleColKeys.map(function (colKey, j) {\n const aggregator = pivotData.getAggregator(rowKey, colKey);\n const colGap = colAttrs.length - colKey.length;\n const cellResult = pipeline.process({ aggregator, rowKey, colKey, pivotData });\n const isNumeric = typeof cellResult.value === 'number';\n const mergedStyle = {\n ...valueCellColors(rowKey, colKey, cellResult.value),\n ...(cellResult.style || {}),\n };\n return (\n <td\n className={\"pvtVal\" + (colGap ? \" pvtLevel\" + colGap : \"\") + (isNumeric ? \" pvtVal-numeric\" : \"\") + (cellResult.className ? \" \" + cellResult.className : \"\")}\n key={`pvtVal${globalI}-${j}`}\n onClick={\n getClickHandler &&\n getClickHandler(cellResult.value, rowKey, colKey)\n }\n style={Object.keys(mergedStyle).length > 0 ? mergedStyle : undefined}\n >\n {cellResult.rendered}\n </td>\n );\n })}\n {/* Spacer right para virtualización de columnas */}\n {shouldVirt.cols && colRightPad > 0 && (\n <td key=\"col-pad-right\" style={{ minWidth: colRightPad }} />\n )}\n <td\n className={\"pvtTotal\" + (typeof rowTotalResult.value === 'number' ? \" pvtVal-numeric\" : \"\")}\n onClick={\n getClickHandler &&\n getClickHandler(rowTotalResult.value, rowKey, [null])\n }\n style={colTotalColors(rowTotalResult.value) || rowTotalResult.style}\n >\n {rowTotalResult.rendered}\n </td>\n </tr>\n );\n })}\n\n {/* Spacer bottom para virtualización de filas */}\n {shouldVirt.rows && rowBottomPad > 0 && (\n <tr key=\"virt-bottom-spacer\" style={{ height: rowBottomPad }}>\n <td colSpan={999} />\n </tr>\n )}\n\n {showRowNumbers && this.props.pagination && visibleRowKeys.length < this.props.pageSize && !shouldVirt.rows && (\n Array.from({ length: this.props.pageSize - visibleRowKeys.length }).map((_, padIdx) => (\n <tr key={`padRow${padIdx}`} className=\"pvtRow-data pvtEmptyRow\">\n <th className=\"pvtRowNumber\">{startOffset + visibleRowKeys.length + padIdx + 1}</th>\n <th className=\"pvtRowLabel\" colSpan={rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)}></th>\n {visibleColKeys.map((colKey, j) => <td key={`padVal${padIdx}-${j}`} className=\"pvtVal pvtEmptyCell\"></td>)}\n <td className=\"pvtTotal pvtEmptyCell\"></td>\n </tr>\n ))\n )}\n\n {/* Totals row — siempre calcula sobre TODOS los datos */}\n <tr className=\"pvtTotalRow\">\n {showRowNumbers && <th className=\"pvtTotalLabel\"></th>}\n <th\n className=\"pvtTotalLabel\"\n colSpan={rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)}\n >\n Totals\n </th>\n\n {shouldVirt.cols && colLeftPad > 0 && (\n <td key=\"total-col-pad-left\" style={{ minWidth: colLeftPad }} />\n )}\n {visibleColKeys.map(function (colKey, i) {\n const totalAggregator = pivotData.getAggregator([], colKey);\n const colGap = colAttrs.length - colKey.length;\n const totalVal = totalAggregator.value();\n const isNumeric = typeof totalVal === 'number';\n return (\n <td\n className={\"pvtTotal\" + (colGap ? \" pvtLevel\" + colGap : \"\") + (isNumeric ? \" pvtVal-numeric\" : \"\")}\n key={`total${i}`}\n onClick={\n getClickHandler &&\n getClickHandler(totalVal, [null], colKey)\n }\n style={rowTotalColors(totalVal)}\n >\n {totalAggregator.format(totalVal)}\n </td>\n );\n })}\n {shouldVirt.cols && colRightPad > 0 && (\n <td key=\"total-col-pad-right\" style={{ minWidth: colRightPad }} />\n )}\n\n <td\n onClick={\n getClickHandler &&\n getClickHandler(grandTotalAggregator.value(), [null], [null])\n }\n className={\"pvtGrandTotal\" + (typeof grandTotalAggregator.value() === 'number' ? \" pvtVal-numeric\" : \"\")}\n >\n {grandTotalAggregator.format(grandTotalAggregator.value())}\n </td>\n </tr>\n </tbody>\n </table>\n );\n\n // Wrappear en container con scroll si virtualización está activa\n if (isVirtualized) {\n return (\n <div\n className=\"pvtVirtualContainer\"\n style={{\n maxHeight: scroller.containerHeight,\n maxWidth: scroller.containerWidth,\n overflow: 'auto',\n position: 'relative',\n }}\n onScroll={handleScroll}\n >\n {tableContent}\n </div>\n );\n }\n\n return tableContent;\n }\n }\n\n TableRenderer.defaultProps = PivotData.defaultProps;\n TableRenderer.propTypes = PivotData.propTypes;\n TableRenderer.defaultProps.tableColorScaleGenerator = redColorScaleGenerator;\n TableRenderer.defaultProps.tableOptions = {};\n TableRenderer.propTypes.tableColorScaleGenerator = PropTypes.func;\n TableRenderer.propTypes.tableOptions = PropTypes.object;\n TableRenderer.defaultProps.compactRows = true;\n TableRenderer.propTypes.compactRows = PropTypes.bool;\n TableRenderer.defaultProps.showRowNumbers = true;\n TableRenderer.propTypes.showRowNumbers = PropTypes.bool;\n return TableRenderer;\n}\n\nclass TSVExportRenderer extends React.PureComponent {\n render() {\n const pivotData = new PivotData(this.props);\n const rowKeys = pivotData.getRowKeys();\n const colKeys = pivotData.getColKeys();\n if (rowKeys.length === 0) {\n rowKeys.push([]);\n }\n if (colKeys.length === 0) {\n colKeys.push([]);\n }\n\n const headerRow = pivotData.props.rows.map(r => r);\n if (colKeys.length === 1 && colKeys[0].length === 0) {\n headerRow.push(this.props.aggregatorName);\n } else {\n colKeys.map(c => headerRow.push(c.join('-')));\n }\n\n const result = rowKeys.map(r => {\n const row = r.map(x => x);\n colKeys.map(c => {\n const v = pivotData.getAggregator(r, c).value();\n row.push(v ? v : '');\n });\n return row;\n });\n\n result.unshift(headerRow);\n\n return (\n <textarea\n value={result.map(r => r.join('\\t')).join('\\n')}\n style={{ width: window.innerWidth / 2, height: window.innerHeight / 2 }}\n readOnly={true}\n />\n );\n }\n}\n\nTSVExportRenderer.defaultProps = PivotData.defaultProps;\nTSVExportRenderer.propTypes = PivotData.propTypes;\n\nexport default {\n Table: makeRenderer(),\n 'Table Heatmap': makeRenderer({ heatmapMode: 'full' }),\n 'Table Col Heatmap': makeRenderer({ heatmapMode: 'col' }),\n 'Table Row Heatmap': makeRenderer({ heatmapMode: 'row' }),\n 'Exportable TSV': TSVExportRenderer,\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AAAyD,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,gBAAAA,CAAA;AAAA,SAAAE,QAAAF,CAAA,EAAAG,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAN,CAAA,OAAAK,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAP,CAAA,GAAAG,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAV,CAAA,EAAAG,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAd,CAAA,aAAAG,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAG,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAlB,CAAA,EAAAG,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAApB,CAAA,EAAAK,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAF,OAAA,CAAAG,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAArB,CAAA,EAAAG,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAH,CAAA;AAAA,SAAAkB,gBAAAlB,CAAA,EAAAG,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAH,CAAA,GAAAK,MAAA,CAAAgB,cAAA,CAAArB,CAAA,EAAAG,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAAzB,CAAA,CAAAG,CAAA,IAAAC,CAAA,EAAAJ,CAAA;AAAA,SAAA0B,2BAAAvB,CAAA,EAAAH,CAAA,QAAAI,CAAA,yBAAAuB,MAAA,IAAAxB,CAAA,CAAAwB,MAAA,CAAAC,QAAA,KAAAzB,CAAA,qBAAAC,CAAA,QAAAyB,KAAA,CAAAC,OAAA,CAAA3B,CAAA,MAAAC,CAAA,GAAA2B,2BAAA,CAAA5B,CAAA,MAAAH,CAAA,IAAAG,CAAA,uBAAAA,CAAA,CAAAa,MAAA,IAAAZ,CAAA,KAAAD,CAAA,GAAAC,CAAA,OAAA4B,EAAA,MAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,WAAAH,EAAA,IAAA7B,CAAA,CAAAa,MAAA,KAAAoB,IAAA,WAAAA,IAAA,MAAAb,KAAA,EAAApB,CAAA,CAAA6B,EAAA,UAAAhC,CAAA,WAAAA,EAAAG,CAAA,UAAAA,CAAA,KAAAkC,CAAA,EAAAJ,CAAA,gBAAAK,SAAA,iJAAA9B,CAAA,EAAA+B,CAAA,OAAAC,CAAA,gBAAAN,CAAA,WAAAA,EAAA,IAAA9B,CAAA,GAAAA,CAAA,CAAAqC,IAAA,CAAAtC,CAAA,MAAAgC,CAAA,WAAAA,EAAA,QAAAhC,CAAA,GAAAC,CAAA,CAAAsC,IAAA,WAAAH,CAAA,GAAApC,CAAA,CAAAiC,IAAA,EAAAjC,CAAA,KAAAH,CAAA,WAAAA,EAAAG,CAAA,IAAAqC,CAAA,OAAAhC,CAAA,GAAAL,CAAA,KAAAkC,CAAA,WAAAA,EAAA,UAAAE,CAAA,YAAAnC,CAAA,cAAAA,CAAA,8BAAAoC,CAAA,QAAAhC,CAAA;AAAA,SAAAuB,4BAAA5B,CAAA,EAAAoC,CAAA,QAAApC,CAAA,2BAAAA,CAAA,SAAAwC,iBAAA,CAAAxC,CAAA,EAAAoC,CAAA,OAAAnC,CAAA,MAAAwC,QAAA,CAAAH,IAAA,CAAAtC,CAAA,EAAA0C,KAAA,6BAAAzC,CAAA,IAAAD,CAAA,CAAA2C,WAAA,KAAA1C,CAAA,GAAAD,CAAA,CAAA2C,WAAA,CAAAC,IAAA,aAAA3C,CAAA,cAAAA,CAAA,GAAAyB,KAAA,CAAAmB,IAAA,CAAA7C,CAAA,oBAAAC,CAAA,+CAAA6C,IAAA,CAAA7C,CAAA,IAAAuC,iBAAA,CAAAxC,CAAA,EAAAoC,CAAA;AAAA,SAAAI,kBAAAxC,CAAA,EAAAoC,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAApC,CAAA,CAAAa,MAAA,MAAAuB,CAAA,GAAApC,CAAA,CAAAa,MAAA,YAAAhB,CAAA,MAAAmC,CAAA,GAAAN,KAAA,CAAAU,CAAA,GAAAvC,CAAA,GAAAuC,CAAA,EAAAvC,CAAA,IAAAmC,CAAA,CAAAnC,CAAA,IAAAG,CAAA,CAAAH,CAAA,UAAAmC,CAAA;AAAA,SAAAe,gBAAAX,CAAA,EAAAJ,CAAA,UAAAI,CAAA,YAAAJ,CAAA,aAAAG,SAAA;AAAA,SAAAa,kBAAAnD,CAAA,EAAAG,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAD,CAAA,CAAAa,MAAA,EAAAZ,CAAA,UAAAI,CAAA,GAAAL,CAAA,CAAAC,CAAA,GAAAI,CAAA,CAAAG,UAAA,GAAAH,CAAA,CAAAG,UAAA,QAAAH,CAAA,CAAAgB,YAAA,kBAAAhB,CAAA,KAAAA,CAAA,CAAAiB,QAAA,QAAApB,MAAA,CAAAgB,cAAA,CAAArB,CAAA,EAAAsB,cAAA,CAAAd,CAAA,CAAA4C,GAAA,GAAA5C,CAAA;AAAA,SAAA6C,aAAArD,CAAA,EAAAG,CAAA,EAAAC,CAAA,WAAAD,CAAA,IAAAgD,iBAAA,CAAAnD,CAAA,CAAAsD,SAAA,EAAAnD,CAAA,GAAAC,CAAA,IAAA+C,iBAAA,CAAAnD,CAAA,EAAAI,CAAA,GAAAC,MAAA,CAAAgB,cAAA,CAAArB,CAAA,iBAAAyB,QAAA,SAAAzB,CAAA;AAAA,SAAAsB,eAAAlB,CAAA,QAAAmD,CAAA,GAAAC,YAAA,CAAApD,CAAA,gCAAAqD,OAAA,CAAAF,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAApD,CAAA,EAAAD,CAAA,oBAAAsD,OAAA,CAAArD,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAJ,CAAA,GAAAI,CAAA,CAAAuB,MAAA,CAAA+B,WAAA,kBAAA1D,CAAA,QAAAuD,CAAA,GAAAvD,CAAA,CAAAyC,IAAA,CAAArC,CAAA,EAAAD,CAAA,gCAAAsD,OAAA,CAAAF,CAAA,UAAAA,CAAA,YAAAjB,SAAA,yEAAAnC,CAAA,GAAAwD,MAAA,GAAAC,MAAA,EAAAxD,CAAA;AAAA,SAAAyD,WAAAzD,CAAA,EAAAI,CAAA,EAAAR,CAAA,WAAAQ,CAAA,GAAAsD,eAAA,CAAAtD,CAAA,GAAAuD,0BAAA,CAAA3D,CAAA,EAAA4D,yBAAA,KAAAC,OAAA,CAAAC,SAAA,CAAA1D,CAAA,EAAAR,CAAA,QAAA8D,eAAA,CAAA1D,CAAA,EAAA0C,WAAA,IAAAtC,CAAA,CAAAK,KAAA,CAAAT,CAAA,EAAAJ,CAAA;AAAA,SAAA+D,2BAAA3D,CAAA,EAAAJ,CAAA,QAAAA,CAAA,iBAAAyD,OAAA,CAAAzD,CAAA,0BAAAA,CAAA,UAAAA,CAAA,iBAAAA,CAAA,YAAAsC,SAAA,qEAAA6B,sBAAA,CAAA/D,CAAA;AAAA,SAAA+D,uBAAAnE,CAAA,mBAAAA,CAAA,YAAAoE,cAAA,sEAAApE,CAAA;AAAA,SAAAgE,0BAAA,cAAA5D,CAAA,IAAAiE,OAAA,CAAAf,SAAA,CAAAgB,OAAA,CAAA7B,IAAA,CAAAwB,OAAA,CAAAC,SAAA,CAAAG,OAAA,iCAAAjE,CAAA,aAAA4D,yBAAA,YAAAA,0BAAA,aAAA5D,CAAA;AAAA,SAAA0D,gBAAA1D,CAAA,WAAA0D,eAAA,GAAAzD,MAAA,CAAAkE,cAAA,GAAAlE,MAAA,CAAAmE,cAAA,CAAAC,IAAA,eAAArE,CAAA,WAAAA,CAAA,CAAAsE,SAAA,IAAArE,MAAA,CAAAmE,cAAA,CAAApE,CAAA,MAAA0D,eAAA,CAAA1D,CAAA;AAAA,SAAAuE,UAAAvE,CAAA,EAAAJ,CAAA,6BAAAA,CAAA,aAAAA,CAAA,YAAAsC,SAAA,wDAAAlC,CAAA,CAAAkD,SAAA,GAAAjD,MAAA,CAAAuE,MAAA,CAAA5E,CAAA,IAAAA,CAAA,CAAAsD,SAAA,IAAAR,WAAA,IAAAvB,KAAA,EAAAnB,CAAA,EAAAqB,QAAA,MAAAD,YAAA,WAAAnB,MAAA,CAAAgB,cAAA,CAAAjB,CAAA,iBAAAqB,QAAA,SAAAzB,CAAA,IAAA6E,eAAA,CAAAzE,CAAA,EAAAJ,CAAA;AAAA,SAAA6E,gBAAAzE,CAAA,EAAAJ,CAAA,WAAA6E,eAAA,GAAAxE,MAAA,CAAAkE,cAAA,GAAAlE,MAAA,CAAAkE,cAAA,CAAAE,IAAA,eAAArE,CAAA,EAAAJ,CAAA,WAAAI,CAAA,CAAAsE,SAAA,GAAA1E,CAAA,EAAAI,CAAA,KAAAyE,eAAA,CAAAzE,CAAA,EAAAJ,CAAA;AAEzD;AACA,IAAM8E,QAAQ,GAAG,SAAXA,QAAQA,CAAaC,GAAG,EAAExB,CAAC,EAAEyB,CAAC,EAAmB;EAAA,IAAjBC,OAAO,GAAAlE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAmE,SAAA,GAAAnE,SAAA,MAAG,KAAK;EACnD,IAAIoE,CAAC;EACL,IAAI5B,CAAC,KAAK,CAAC,EAAE;IACX,IAAI6B,GAAG,EAAEC,GAAG;IACZ,IAAIC,MAAM,GAAG,IAAI;IACjB,KACEH,CAAC,GAAG,CAAC,EAAEE,GAAG,GAAGL,CAAC,EAAEI,GAAG,GAAGC,GAAG,IAAI,CAAC,EAC9BD,GAAG,GAAGD,CAAC,IAAIE,GAAG,GAAGF,CAAC,IAAIE,GAAG,EACzBD,GAAG,GAAGD,CAAC,EAAE,GAAGA,CAAC,EAAE,EACf;MACA,IAAIJ,GAAG,CAACxB,CAAC,GAAG,CAAC,CAAC,CAAC4B,CAAC,CAAC,KAAKJ,GAAG,CAACxB,CAAC,CAAC,CAAC4B,CAAC,CAAC,EAAE;QAC/BG,MAAM,GAAG,KAAK;MAChB;IACF;IACA,IAAIA,MAAM,EAAE;MACV,OAAO,CAAC,CAAC;IACX;EACF;EACA,IAAIC,GAAG,GAAG,CAAC;EACX,OAAOhC,CAAC,GAAGgC,GAAG,GAAGR,GAAG,CAAC/D,MAAM,EAAE;IAC3B,IAAIwE,IAAI;MAAEC,IAAI;IACd,IAAIC,IAAI,GAAG,KAAK;IAChB,KACEP,CAAC,GAAGF,OAAO,GAAGD,CAAC,GAAG,CAAC,EAAES,IAAI,GAAGT,CAAC,EAAEQ,IAAI,GAAGC,IAAI,IAAI,CAAC,EAC/CD,IAAI,GAAGL,CAAC,IAAIM,IAAI,GAAGN,CAAC,IAAIM,IAAI,EAC5BD,IAAI,GAAGL,CAAC,EAAE,GAAGA,CAAC,EAAE,EAChB;MACA,IAAIJ,GAAG,CAACxB,CAAC,CAAC,CAAC4B,CAAC,CAAC,KAAKJ,GAAG,CAACxB,CAAC,GAAGgC,GAAG,CAAC,CAACJ,CAAC,CAAC,EAAE;QACjCO,IAAI,GAAG,IAAI;MACb;IACF;IACA,IAAIA,IAAI,EAAE;MACR;IACF;IACAH,GAAG,EAAE;EACP;EACA,OAAOA,GAAG;AACZ,CAAC;AAED,SAASI,sBAAsBA,CAACC,MAAM,EAAE;EACtC,IAAMC,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAChF,KAAK,CAACiF,IAAI,EAAEF,MAAM,CAAC;EACxC,IAAMG,GAAG,GAAGD,IAAI,CAACC,GAAG,CAAClF,KAAK,CAACiF,IAAI,EAAEF,MAAM,CAAC;EACxC,OAAO,UAAAT,CAAC,EAAI;IACV;IACA,IAAMa,MAAM,GAAG,GAAG,GAAGF,IAAI,CAACG,KAAK,CAAE,GAAG,IAAId,CAAC,GAAGU,GAAG,CAAC,IAAKE,GAAG,GAAGF,GAAG,CAAC,CAAC;IAChE,OAAO;MAAEK,eAAe,aAAAC,MAAA,CAAaH,MAAM,OAAAG,MAAA,CAAIH,MAAM;IAAI,CAAC;EAC5D,CAAC;AACH;AAEA,IAAMI,OAAO,GAAG,SAAVA,OAAOA,CAAGrB,GAAG;EAAA,OAAIA,GAAG,CAACsB,IAAI,CAAC1C,MAAM,CAAC2C,YAAY,CAAC,CAAC,CAAC,CAAC;AAAA;AACvD,IAAMC,GAAG,GAAG,SAANA,GAAGA,CAAIC,GAAG,EAAEzB,GAAG;EAAA,OAAKA,GAAG,CAAC0B,KAAK,CAACD,GAAG,CAACD,GAAG,EAAEC,GAAG,CAAC;AAAA;AACjD,IAAME,GAAG,GAAG,SAANA,GAAGA,CAAIF,GAAG,EAAEzB,GAAG;EAAA,OAAMA,GAAG,CAAC9D,OAAO,CAACuF,GAAG,CAACE,GAAG,EAAEF,GAAG,CAAC,IAAIA,GAAG;AAAA,CAAC;AAC5D,IAAMG,MAAM,GAAG,SAATA,MAAMA,CAAIH,GAAG,EAAEzB,GAAG;EAAA,OAAMA,GAAG,CAAC9D,OAAO,CAACuF,GAAG,UAAO,EAAEA,GAAG,CAAC,IAAIA,GAAG;AAAA,CAAC;AAClE,IAAMI,MAAM,GAAG,SAATA,MAAMA,CAAIJ,GAAG,EAAEzB,GAAG;EAAA,OAAK,CAACwB,GAAG,CAACC,GAAG,EAAEzB,GAAG,CAAC,GAAG4B,MAAM,GAAGD,GAAG,EAAEF,GAAG,EAAEzB,GAAG,CAAC;AAAA;AAErE,SAAS8B,YAAYA,CAAA,EAAY;EAAA,IAAXC,IAAI,GAAA/F,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAmE,SAAA,GAAAnE,SAAA,MAAG,CAAC,CAAC;EAAA,IACvBgG,aAAa,0BAAAC,oBAAA;IAAA,SAAAD,cAAA;MAAA7D,eAAA,OAAA6D,aAAA;MAAA,OAAAlD,UAAA,OAAAkD,aAAA,EAAAhG,SAAA;IAAA;IAAA4D,SAAA,CAAAoC,aAAA,EAAAC,oBAAA;IAAA,OAAA3D,YAAA,CAAA0D,aAAA;MAAA3D,GAAA;MAAA7B,KAAA,EACjB,SAAA0F,MAAMA,CAAA,EAAG;QAAA,IAAAC,KAAA;QACP,IAAMC,SAAS,GAAG,IAAIC,oBAAS,CAAC,IAAI,CAACC,KAAK,CAAC;QAC3C,IAAMC,EAAE,GAAGH,SAAS,CAACE,KAAK,CAACC,EAAE;QAC7B,IAAMC,QAAQ,GAAGJ,SAAS,CAACE,KAAK,CAACG,IAAI;QACrC,IAAMC,QAAQ,GAAGN,SAAS,CAACE,KAAK,CAACK,IAAI;QACrC,IAAIC,OAAO,GAAGR,SAAS,CAACS,UAAU,CAAC,IAAI,CAAC;QACxC,IAAIC,OAAO,GAAGV,SAAS,CAACW,UAAU,CAAC,IAAI,CAAC;QACxC,IAAMC,oBAAoB,GAAGZ,SAAS,CAACa,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC;;QAE5D;QACA,IAAMC,QAAQ,GAAG,IAAI,CAACZ,KAAK,CAACa,YAAY,GACpC,IAAIC,0BAAY,CAAC,IAAI,CAACd,KAAK,CAACa,YAAY,CAAC,GACzCC,0BAAY,WAAQ,CAAC,CAAC;;QAE1B;QACA,IAAMC,UAAU,GAAG,IAAI,CAACf,KAAK,CAACgB,cAAc,IAAI,CAAC,CAAC;QAClD,IAAMC,QAAQ,GAAG,IAAIC,gCAAe,CAAC;UACnCC,OAAO,EAAEJ,UAAU,CAACI,OAAO,KAAKtD,SAAS,GAAGkD,UAAU,CAACI,OAAO,GAAG,KAAK;UACtEC,SAAS,EAAEL,UAAU,CAACK,SAAS,IAAI,EAAE;UACrCC,QAAQ,EAAEN,UAAU,CAACM,QAAQ,IAAI,GAAG;UACpCC,YAAY,EAAEP,UAAU,CAACO,YAAY,IAAI,CAAC;UAC1CC,YAAY,EAAER,UAAU,CAACQ,YAAY,IAAI,CAAC;UAC1CC,eAAe,EAAET,UAAU,CAACS,eAAe,IAAI,GAAG;UAClDC,cAAc,EAAEV,UAAU,CAACU,cAAc,IAAI,GAAG;UAChDC,SAAS,EAAEX,UAAU,CAACW,SAAS,IAAI;QACrC,CAAC,CAAC;QAEF,IAAMC,QAAQ,GAAG7B,SAAS,CAACE,KAAK,CAAC2B,QAAQ;QACzC,IAAMC,WAAW,GAAGD,QAAQ,IAAI,IAAI,CAAC3B,KAAK,CAAC4B,WAAW;QACtD;QACA,IAAMC,WAAW,GAAGF,QAAQ,IAAI,CAAC,IAAI,CAAC3B,KAAK,CAAC8B,cAAc;QAC1D,IAAMC,MAAM,GAAG,CAAC,IAAI,CAACC,KAAK,IAAI,CAAC,CAAC,EAAED,MAAM,IAAI,IAAIE,GAAG,CAAC,CAAC;QACrD,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAGjJ,IAAI;UAAA,OAAIiG,GAAG,CAAC6C,MAAM,EAAE9I,IAAI,CAACkJ,GAAG,CAACpD,OAAO,CAAC,CAAC;QAAA;QACvD,IAAMqD,IAAI,GAAG,SAAPA,IAAIA,CAAGnJ,IAAI;UAAA,OAAI4G,KAAI,CAACwC,QAAQ,CAAC;YAAEN,MAAM,EAAExC,MAAM,CAAC,IAAI0C,GAAG,CAACF,MAAM,CAAC,EAAE9I,IAAI,CAACkJ,GAAG,CAACpD,OAAO,CAAC;UAAE,CAAC,CAAC;QAAA;QAE1F,IAAI4C,QAAQ,EAAE;UAAA,IAAAW,SAAA,GAAAjI,0BAAA,CACM0H,MAAM;YAAAQ,KAAA;UAAA;YAAA,IAAAC,KAAA,YAAAA,MAAA,EAAE;cAAA,IAAfzG,GAAG,GAAAwG,KAAA,CAAArI,KAAA;cACZsG,OAAO,GAAGA,OAAO,CAACpH,MAAM,CAAC,UAAAqJ,MAAM;gBAAA,OAAI,CAAC1D,OAAO,CAAC0D,MAAM,CAAC,CAACC,UAAU,CAAC3G,GAAG,GAAGO,MAAM,CAAC2C,YAAY,CAAC,CAAC,CAAC,CAAC;cAAA,EAAC;cAC7FqB,OAAO,GAAGA,OAAO,CAAClH,MAAM,CAAC,UAAAuJ,MAAM;gBAAA,OAAI,CAAC5D,OAAO,CAAC4D,MAAM,CAAC,CAACD,UAAU,CAAC3G,GAAG,GAAGO,MAAM,CAAC2C,YAAY,CAAC,CAAC,CAAC,CAAC;cAAA,EAAC;YAC/F,CAAC;YAHD,KAAAqD,SAAA,CAAAzH,CAAA,MAAA0H,KAAA,GAAAD,SAAA,CAAAxH,CAAA,IAAAC,IAAA;cAAAyH,KAAA;YAAA;UAGC,SAAAI,GAAA;YAAAN,SAAA,CAAA3J,CAAA,CAAAiK,GAAA;UAAA;YAAAN,SAAA,CAAAtH,CAAA;UAAA;QACH;;QAEA;QACA,IAAM6H,UAAU,GAAGrC,OAAO;QAC1B,IAAMsC,UAAU,GAAGxC,OAAO;QAE1B,IAAMyC,SAAS,GAAGzC,OAAO,CAAC3G,MAAM;QAChC,IAAIqJ,WAAW,GAAG,CAAC;QACnB,IAAI,IAAI,CAAChD,KAAK,CAACiD,UAAU,EAAE;UACzB,IAAMC,KAAK,GAAG,CAAC,IAAI,CAAClD,KAAK,CAACmD,IAAI,GAAG,CAAC,IAAI,IAAI,CAACnD,KAAK,CAACoD,QAAQ;UACzDJ,WAAW,GAAGE,KAAK;UACnB,IAAMlF,GAAG,GAAGkF,KAAK,GAAG,IAAI,CAAClD,KAAK,CAACoD,QAAQ;UACvC9C,OAAO,GAAGA,OAAO,CAAC9E,KAAK,CAAC0H,KAAK,EAAElF,GAAG,CAAC;QACrC;;QAEA;QACA,IAAMqF,UAAU,GAAGpC,QAAQ,CAACqC,gBAAgB,CAAChD,OAAO,CAAC3G,MAAM,EAAE6G,OAAO,CAAC7G,MAAM,CAAC;QAC5E,IAAM4J,SAAS,GAAG,CAAC,IAAI,CAACvB,KAAK,IAAI,CAAC,CAAC,EAAEuB,SAAS,IAAI,CAAC;QACnD,IAAMC,UAAU,GAAG,CAAC,IAAI,CAACxB,KAAK,IAAI,CAAC,CAAC,EAAEwB,UAAU,IAAI,CAAC;QAErD,IAAIC,cAAc,GAAGnD,OAAO;QAC5B,IAAIoD,SAAS,GAAG,CAAC;QACjB,IAAIC,YAAY,GAAG,CAAC;QACpB,IAAIC,qBAAqB,GAAG,CAAC;QAE7B,IAAIP,UAAU,CAAChD,IAAI,EAAE;UACnB,IAAMwD,QAAQ,GAAG5C,QAAQ,CAAC6C,kBAAkB,CAACP,SAAS,EAAEjD,OAAO,CAAC3G,MAAM,CAAC;UACvE8J,cAAc,GAAGnD,OAAO,CAAC9E,KAAK,CAACqI,QAAQ,CAACE,UAAU,EAAEF,QAAQ,CAACG,QAAQ,GAAG,CAAC,CAAC;UAC1EN,SAAS,GAAGG,QAAQ,CAACI,UAAU;UAC/BN,YAAY,GAAGE,QAAQ,CAACK,aAAa;UACrCN,qBAAqB,GAAGC,QAAQ,CAACE,UAAU;QAC7C;QAEA,IAAII,cAAc,GAAG3D,OAAO;QAC5B,IAAI4D,UAAU,GAAG,CAAC;QAClB,IAAIC,WAAW,GAAG,CAAC;QAEnB,IAAIhB,UAAU,CAAClD,IAAI,EAAE;UACnB,IAAMmE,QAAQ,GAAGrD,QAAQ,CAACsD,kBAAkB,CAACf,UAAU,EAAEhD,OAAO,CAAC7G,MAAM,CAAC;UACxEwK,cAAc,GAAG3D,OAAO,CAAChF,KAAK,CAAC8I,QAAQ,CAACP,UAAU,EAAEO,QAAQ,CAACN,QAAQ,GAAG,CAAC,CAAC;UAC1EI,UAAU,GAAGE,QAAQ,CAACE,WAAW;UACjCH,WAAW,GAAGC,QAAQ,CAACG,YAAY;QACrC;QAEA,IAAMC,cAAc,GAAG,IAAI,CAAC1E,KAAK,CAAC0E,cAAc,KAAK,KAAK;QAC1D,IAAMC,aAAa,GAAGtB,UAAU,CAAChD,IAAI,IAAIgD,UAAU,CAAClD,IAAI;QAExD,IAAIyE,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS,CAAE,CAAC;QAC/B,IAAIC,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS,CAAE,CAAC;QAC9B,IAAIC,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS,CAAE,CAAC;QAC9B,IAAIrF,IAAI,CAACsF,WAAW,EAAE;UACpB,IAAMC,mBAAmB,GAAG,IAAI,CAAChF,KAAK,CAACiF,wBAAwB;UAC/D,IAAMC,cAAc,GAAG1E,OAAO,CAAC2B,GAAG,CAAC,UAAArE,CAAC;YAAA,OAClCgC,SAAS,CAACa,aAAa,CAAC,EAAE,EAAE7C,CAAC,CAAC,CAAC5D,KAAK,CAAC,CAAC;UAAA,CACxC,CAAC;UACD2K,cAAc,GAAGG,mBAAmB,CAACE,cAAc,CAAC;UACpD,IAAMC,cAAc,GAAG7E,OAAO,CAAC6B,GAAG,CAAC,UAAArE,CAAC;YAAA,OAClCgC,SAAS,CAACa,aAAa,CAAC7C,CAAC,EAAE,EAAE,CAAC,CAAC5D,KAAK,CAAC,CAAC;UAAA,CACxC,CAAC;UACD4K,cAAc,GAAGE,mBAAmB,CAACG,cAAc,CAAC;UAEpD,IAAI1F,IAAI,CAACsF,WAAW,KAAK,MAAM,EAAE;YAC/B,IAAMK,SAAS,GAAG,EAAE;YACpB9E,OAAO,CAAC6B,GAAG,CAAC,UAAArJ,CAAC;cAAA,OACX0H,OAAO,CAAC2B,GAAG,CAAC,UAAAkD,CAAC;gBAAA,OACXD,SAAS,CAAC7L,IAAI,CAACuG,SAAS,CAACa,aAAa,CAAC7H,CAAC,EAAEuM,CAAC,CAAC,CAACnL,KAAK,CAAC,CAAC,CAAC;cAAA,CACvD,CAAC;YAAA,CACH,CAAC;YACD,IAAMoL,UAAU,GAAGN,mBAAmB,CAACI,SAAS,CAAC;YACjDR,eAAe,GAAG,SAAlBA,eAAeA,CAAI9L,CAAC,EAAEuM,CAAC,EAAEE,CAAC;cAAA,OAAKD,UAAU,CAACC,CAAC,CAAC;YAAA;UAC9C,CAAC,MAAM,IAAI9F,IAAI,CAACsF,WAAW,KAAK,KAAK,EAAE;YACrC,IAAMS,cAAc,GAAG,CAAC,CAAC;YACzBlF,OAAO,CAAC6B,GAAG,CAAC,UAAArJ,CAAC,EAAI;cACf,IAAM2M,SAAS,GAAGjF,OAAO,CAAC2B,GAAG,CAAC,UAAArE,CAAC;gBAAA,OAC7BgC,SAAS,CAACa,aAAa,CAAC7H,CAAC,EAAEgF,CAAC,CAAC,CAAC5D,KAAK,CAAC,CAAC;cAAA,CACvC,CAAC;cACDsL,cAAc,CAAC1M,CAAC,CAAC,GAAGkM,mBAAmB,CAACS,SAAS,CAAC;YACpD,CAAC,CAAC;YACFb,eAAe,GAAG,SAAlBA,eAAeA,CAAI9L,CAAC,EAAEuM,CAAC,EAAEE,CAAC;cAAA,OAAKC,cAAc,CAAC1M,CAAC,CAAC,CAACyM,CAAC,CAAC;YAAA;UACrD,CAAC,MAAM,IAAI9F,IAAI,CAACsF,WAAW,KAAK,KAAK,EAAE;YACrC,IAAMW,cAAc,GAAG,CAAC,CAAC;YACzBlF,OAAO,CAAC2B,GAAG,CAAC,UAAAkD,CAAC,EAAI;cACf,IAAMM,SAAS,GAAGrF,OAAO,CAAC6B,GAAG,CAAC,UAAArE,CAAC;gBAAA,OAC7BgC,SAAS,CAACa,aAAa,CAAC7C,CAAC,EAAEuH,CAAC,CAAC,CAACnL,KAAK,CAAC,CAAC;cAAA,CACvC,CAAC;cACDwL,cAAc,CAACL,CAAC,CAAC,GAAGL,mBAAmB,CAACW,SAAS,CAAC;YACpD,CAAC,CAAC;YACFf,eAAe,GAAG,SAAlBA,eAAeA,CAAI9L,CAAC,EAAEuM,CAAC,EAAEE,CAAC;cAAA,OAAKG,cAAc,CAACL,CAAC,CAAC,CAACE,CAAC,CAAC;YAAA;UACrD;QACF;QAEA,IAAMK,eAAe,GACnB,IAAI,CAAC5F,KAAK,CAAC6F,YAAY,IAAI,IAAI,CAAC7F,KAAK,CAAC6F,YAAY,CAACC,aAAa,GAC5D,UAAC5L,KAAK,EAAEuL,SAAS,EAAEE,SAAS,EAAK;UACjC,IAAMI,OAAO,GAAG,CAAC,CAAC;UAClB,SAAAC,EAAA,MAAAC,YAAA,GAAgBjN,MAAM,CAACC,IAAI,CAACiH,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAA8F,EAAA,GAAAC,YAAA,CAAAtM,MAAA,EAAAqM,EAAA,IAAE;YAAxC,IAAM9J,CAAC,GAAA+J,YAAA,CAAAD,EAAA;YACV,IAAME,IAAI,GAAGhG,QAAQ,CAAChE,CAAC,CAAC;YACxB,IAAIyJ,SAAS,CAACzJ,CAAC,CAAC,KAAK,IAAI,EAAE;cACzB6J,OAAO,CAACG,IAAI,CAAC,GAAGP,SAAS,CAACzJ,CAAC,CAAC;YAC9B;UACF;UACA,SAAAiK,GAAA,MAAAC,aAAA,GAAgBpN,MAAM,CAACC,IAAI,CAACmH,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAA+F,GAAA,GAAAC,aAAA,CAAAzM,MAAA,EAAAwM,GAAA,IAAE;YAAxC,IAAMjK,GAAC,GAAAkK,aAAA,CAAAD,GAAA;YACV,IAAMD,KAAI,GAAG9F,QAAQ,CAAClE,GAAC,CAAC;YACxB,IAAIuJ,SAAS,CAACvJ,GAAC,CAAC,KAAK,IAAI,EAAE;cACzB6J,OAAO,CAACG,KAAI,CAAC,GAAGT,SAAS,CAACvJ,GAAC,CAAC;YAC9B;UACF;UACA,OAAO,UAAAvD,CAAC;YAAA,OACNkH,KAAI,CAACG,KAAK,CAAC6F,YAAY,CAACC,aAAa,CACnCnN,CAAC,EACDuB,KAAK,EACL6L,OAAO,EACPjG,SACF,CAAC;UAAA;QACL,CAAC,GACC,IAAI;QAEV,IAAMuG,OAAO,GAAG1E,QAAQ,GAAG,IAAI,CAAC3B,KAAK,CAAC8B,cAAc,GAAG,gBAAgB,GAAG,eAAe,GAAG,EAAE;QAC9F,IAAMwE,OAAO,GAAG3E,QAAQ,GAAG,IAAI,CAAC3B,KAAK,CAACuG,cAAc,GAAG,gBAAgB,GAAG,eAAe,GAAG,EAAE;QAC9F,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAIC,IAAI,EAAEC,MAAM;UAAA,OAAKD,IAAI,GAAG,eAAe,IAAIC,MAAM,GAAG,SAAS,GAAG,EAAE,CAAC,GAAG,EAAE;QAAA;QAC5F;QACA,IAAMC,YAAY,GAAGhC,aAAa,GAAG,UAAChM,CAAC,EAAK;UAC1CkH,KAAI,CAACwC,QAAQ,CAAC;YACZkB,SAAS,EAAE5K,CAAC,CAACiO,aAAa,CAACrD,SAAS;YACpCC,UAAU,EAAE7K,CAAC,CAACiO,aAAa,CAACpD;UAC9B,CAAC,CAAC;QACJ,CAAC,GAAG,IAAI;QAER,IAAMqD,YAAY,gBAChBzO,MAAA,YAAA0O,aAAA;UAAO7G,EAAE,EAAEA,EAAG;UAAC8G,SAAS,cAAAjI,MAAA,CAAcuH,OAAO,OAAAvH,MAAA,CAAIwH,OAAO;QAAG,gBACzDlO,MAAA,YAAA0O,aAAA,gBACG5G,QAAQ,CAACiC,GAAG,CAAC,UAAUkD,CAAC,EAAE1H,CAAC,EAAE;UAC5B,IAAMqJ,SAAS,GAAGrF,QAAQ,IAAIzB,QAAQ,CAACvG,MAAM,GAAGgE,CAAC,GAAG,CAAC;UACrD,IAAMsJ,SAAS,GAAGpE,UAAU,CAACzJ,MAAM,CAAC,UAAA0E,CAAC;YAAA,OAAIA,CAAC,CAACnE,MAAM,KAAKgE,CAAC,GAAG,CAAC;UAAA,EAAC;UAC5D,oBACEvF,MAAA,YAAA0O,aAAA;YAAI/K,GAAG,YAAA+C,MAAA,CAAYnB,CAAC;UAAG,GACpB+G,cAAc,IAAI/G,CAAC,KAAK,CAAC,iBACxBvF,MAAA,YAAA0O,aAAA;YAAIC,SAAS,EAAC,2BAA2B;YAACG,OAAO,EAAEhH,QAAQ,CAACvG,MAAM,IAAIyG,QAAQ,CAACzG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;UAAE,GAAC,GAAK,CAC5G,EACAgE,CAAC,KAAK,CAAC,IAAIyC,QAAQ,CAACzG,MAAM,KAAK,CAAC,iBAC/BvB,MAAA,YAAA0O,aAAA;YAAIK,OAAO,EAAE/G,QAAQ,CAACzG,MAAO;YAACuN,OAAO,EAAEhH,QAAQ,CAACvG;UAAO,CAAE,CAC1D,eACDvB,MAAA,YAAA0O,aAAA;YAAIC,SAAS,EAAE,cAAc,GAAGP,UAAU,CAACQ,SAAS,EAAE9E,QAAQ,CAAC+E,SAAS,CAAC,CAAE;YACzEG,OAAO,EAAEJ,SAAS,GAAG,UAAAK,CAAC;cAAA,OAAIjF,IAAI,CAAC6E,SAAS,CAAC;YAAA,IAAG;UAAK,GACjD5B,CAAM,CAAC,EACRhC,UAAU,CAAClD,IAAI,IAAIiE,UAAU,GAAG,CAAC,IAAIzG,CAAC,KAAK,CAAC,iBAC3CvF,MAAA,YAAA0O,aAAA;YAAI/K,GAAG,EAAC,cAAc;YAACuL,KAAK,EAAE;cAAEC,QAAQ,EAAEnD;YAAW;UAAE,CAAE,CAC1D,EACAD,cAAc,CAAChC,GAAG,CAAC,UAAUM,MAAM,EAAEvG,CAAC,EAAE;YACvC,IAAM4B,CAAC,GAAGL,QAAQ,CAAC0G,cAAc,EAAEjI,CAAC,EAAEyB,CAAC,CAAC;YACxC,IAAIG,CAAC,KAAK,CAAC,CAAC,EAAE;cACZ,OAAO,IAAI;YACb;YACA,oBACE1F,MAAA,YAAA0O,aAAA;cACEC,SAAS,EAAE,aAAa,GAAGP,UAAU,CAACQ,SAAS,IAAIvE,MAAM,CAAC9E,CAAC,CAAC,EAAEuE,QAAQ,CAAC,CAACO,MAAM,CAACjH,KAAK,CAAC,CAAC,EAAEmC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE;cAClG5B,GAAG,YAAA+C,MAAA,CAAY5C,CAAC,OAAA4C,MAAA,CAAInB,CAAC,OAAAmB,MAAA,CAAI2D,MAAM,CAAC9E,CAAC,CAAC,CAAG;cACrCwJ,OAAO,EAAErJ,CAAE;cACXoJ,OAAO,EACLvJ,CAAC,KAAKuC,QAAQ,CAACvG,MAAM,GAAG,CAAC,IAAIyG,QAAQ,CAACzG,MAAM,KAAK,CAAC,GAC9C,CAAC,GACD,CACL;cACDyN,OAAO,EAAEJ,SAAS,IAAIvE,MAAM,CAAC9E,CAAC,CAAC,GAAG,UAAA0J,CAAC;gBAAA,OAAIjF,IAAI,CAAC,CAACK,MAAM,CAACjH,KAAK,CAAC,CAAC,EAAEmC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;cAAA,IAAG;YAAK,GAE5E8E,MAAM,CAAC9E,CAAC,CACP,CAAC;UAET,CAAC,CAAC,EACD0F,UAAU,CAAClD,IAAI,IAAIkE,WAAW,GAAG,CAAC,IAAI1G,CAAC,KAAK,CAAC,iBAC5CvF,MAAA,YAAA0O,aAAA;YAAI/K,GAAG,EAAC,eAAe;YAACuL,KAAK,EAAE;cAAEC,QAAQ,EAAElD;YAAY;UAAE,CAAE,CAC5D,EAEA1G,CAAC,KAAK,CAAC,iBACNvF,MAAA,YAAA0O,aAAA;YACEC,SAAS,EAAC,eAAe;YACzBG,OAAO,EACLhH,QAAQ,CAACvG,MAAM,IAAIyG,QAAQ,CAACzG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;UACjD,GACF,QAEG,CAEJ,CAAC;QAET,CAAC,CAAC,EAEDyG,QAAQ,CAACzG,MAAM,KAAK,CAAC,iBACpBvB,MAAA,YAAA0O,aAAA,aACGpC,cAAc,IAAIxE,QAAQ,CAACvG,MAAM,KAAK,CAAC,iBACtCvB,MAAA,YAAA0O,aAAA;UAAIC,SAAS,EAAC,2BAA2B;UAACG,OAAO,EAAC;QAAG,GAAC,GAAK,CAC5D,EACA9G,QAAQ,CAAC+B,GAAG,CAAC,UAAUrJ,CAAC,EAAEoD,CAAC,EAAE;UAC5B,IAAM8K,SAAS,GAAGrF,QAAQ,IAAIvB,QAAQ,CAACzG,MAAM,GAAGuC,CAAC,GAAG,CAAC;UACrD,IAAM+K,SAAS,GAAGnE,UAAU,CAAC1J,MAAM,CAAC,UAAA0E,CAAC;YAAA,OAAIA,CAAC,CAACnE,MAAM,KAAKuC,CAAC,GAAG,CAAC;UAAA,EAAC;UAC5D,oBACE9D,MAAA,YAAA0O,aAAA;YAAIC,SAAS,EAAE,cAAc,GAAGP,UAAU,CAACQ,SAAS,EAAE9E,QAAQ,CAAC+E,SAAS,CAAC,CAAE;YACzEG,OAAO,EAAEJ,SAAS,GAAG,UAAAK,CAAC;cAAA,OAAIjF,IAAI,CAAC6E,SAAS,CAAC;YAAA,IAAG,IAAK;YACjDlL,GAAG,YAAA+C,MAAA,CAAY5C,CAAC;UAAG,GAClBpD,CACC,CAAC;QAET,CAAC,CAAC,eACFV,MAAA,YAAA0O,aAAA;UAAIC,SAAS,EAAC;QAAe,GAC1B7G,QAAQ,CAACvG,MAAM,KAAK,CAAC,GAAG,QAAQ,GAAG,IAClC,CACF,CAED,CAAC,eAERvB,MAAA,YAAA0O,aAAA,gBAEGzD,UAAU,CAAChD,IAAI,IAAIqD,SAAS,GAAG,CAAC,iBAC/BtL,MAAA,YAAA0O,aAAA;UAAI/K,GAAG,EAAC,iBAAiB;UAACuL,KAAK,EAAE;YAAEE,MAAM,EAAE9D;UAAU;QAAE,gBACrDtL,MAAA,YAAA0O,aAAA;UAAIK,OAAO,EAAE;QAAI,CAAE,CACjB,CACL,EAEA1D,cAAc,CAACtB,GAAG,CAAC,UAAUQ,MAAM,EAAE8E,MAAM,EAAE;UAC5C,IAAMC,OAAO,GAAGrE,UAAU,CAAChD,IAAI,GAAGuD,qBAAqB,GAAG6D,MAAM,GAAGA,MAAM;UACzE,IAAME,eAAe,GAAG7H,SAAS,CAACa,aAAa,CAACgC,MAAM,EAAE,EAAE,CAAC;UAC3D,IAAMiF,MAAM,GAAGxH,QAAQ,CAACzG,MAAM,GAAGgJ,MAAM,CAAChJ,MAAM;UAC9C,IAAMkO,cAAc,GAAGjH,QAAQ,CAACkH,YAAY,CAAC;YAAEC,UAAU,EAAEJ,eAAe;YAAEhF,MAAM,EAANA,MAAM;YAAEqF,IAAI,EAAE;UAAM,CAAC,CAAC;UAClG,oBACE5P,MAAA,YAAA0O,aAAA;YAAI/K,GAAG,cAAA+C,MAAA,CAAc4I,OAAO,CAAG;YAC7BX,SAAS,EAAE,CAACa,MAAM,GAAG,UAAU,GAAGA,MAAM,GAAG,SAAS,IAAI,cAAe;YACvEN,KAAK,EAAEjE,UAAU,CAAChD,IAAI,GAAG;cAAEmH,MAAM,EAAEvG,QAAQ,CAACG;YAAU,CAAC,GAAGvD;UAAU,GACnE6G,cAAc,iBACbtM,MAAA,YAAA0O,aAAA;YAAIC,SAAS,EAAC;UAAc,GAAE/D,WAAW,GAAG0E,OAAO,GAAG,CAAM,CAC7D,EACA/E,MAAM,CAACR,GAAG,CAAC,UAAU8F,GAAG,EAAEtK,CAAC,EAAE;YAC5B,IAAIiE,WAAW,IAAIjE,CAAC,GAAGgF,MAAM,CAAChJ,MAAM,GAAG,CAAC,EAAE;cACxC,OAAO,IAAI;YACb;YACA,IAAMqN,SAAS,GAAGrF,QAAQ,IAAIvB,QAAQ,CAACzG,MAAM,GAAGgE,CAAC,GAAG,CAAC;YACrD,IAAMG,CAAC,GAAG8D,WAAW,GAAG,CAAC,GAAGnE,QAAQ,CAACgG,cAAc,EAAEgE,MAAM,EAAE9J,CAAC,EAAEkE,WAAW,CAAC;YAC5E,IAAI/D,CAAC,KAAK,CAAC,CAAC,EAAE;cACZ,OAAO,IAAI;YACb;YACA,oBACE1F,MAAA,YAAA0O,aAAA;cACE/K,GAAG,iBAAA+C,MAAA,CAAiB4I,OAAO,OAAA5I,MAAA,CAAInB,CAAC,OAAAmB,MAAA,CAAImJ,GAAG,CAAG;cAC1ClB,SAAS,EAAE,aAAa,GAAGP,UAAU,CAACQ,SAAS,IAAIrE,MAAM,CAAChF,CAAC,CAAC,EAAEuE,QAAQ,CAAC,CAACS,MAAM,CAACnH,KAAK,CAAC,CAAC,EAAEmC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE;cAClGuJ,OAAO,EAAEpJ,CAAE;cACXqJ,OAAO,EACLvF,WAAW,GACTxB,QAAQ,CAACzG,MAAM,GAAG,CAAC,GACnBgE,CAAC,KAAKyC,QAAQ,CAACzG,MAAM,GAAG,CAAC,IAAIuG,QAAQ,CAACvG,MAAM,KAAK,CAAC,GAC9C,CAAC,GACD,CACP;cACD2N,KAAK,EAAE;gBAAEY,WAAW,EAAEtG,WAAW,yCAAA9C,MAAA,CAAyCnB,CAAC,uCAAoC;cAAK,CAAE;cACtHyJ,OAAO,EAAEJ,SAAS,IAAIrE,MAAM,CAAChF,CAAC,CAAC,GAAG,UAAA0J,CAAC;gBAAA,OAAIjF,IAAI,CAAC,CAACO,MAAM,CAACnH,KAAK,CAAC,CAAC,EAAEmC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;cAAA,IAAG;YAAK,GAE5EsK,GACC,CAAC;UAET,CAAC,CAAC,EACD,CAACrG,WAAW,IAAIgG,MAAM,gBACnBxP,MAAA,YAAA0O,aAAA;YAAIC,SAAS,EAAC,aAAa;YAACI,OAAO,EAAES,MAAM,GAAG;UAAE,GAAE,SAAS,GAAGjF,MAAM,CAACA,MAAM,CAAChJ,MAAM,GAAG,CAAC,CAAC,GAAG,GAAQ,CAAC,GACnG,IAAI,EAGP0J,UAAU,CAAClD,IAAI,IAAIiE,UAAU,GAAG,CAAC,iBAChChM,MAAA,YAAA0O,aAAA;YAAI/K,GAAG,EAAC,cAAc;YAACuL,KAAK,EAAE;cAAEC,QAAQ,EAAEnD;YAAW;UAAE,CAAE,CAC1D,EACAD,cAAc,CAAChC,GAAG,CAAC,UAAUM,MAAM,EAAE9E,CAAC,EAAE;YACvC,IAAMoK,UAAU,GAAGjI,SAAS,CAACa,aAAa,CAACgC,MAAM,EAAEF,MAAM,CAAC;YAC1D,IAAM0F,MAAM,GAAGjI,QAAQ,CAACvG,MAAM,GAAG8I,MAAM,CAAC9I,MAAM;YAC9C,IAAMyO,UAAU,GAAGxH,QAAQ,CAACyH,OAAO,CAAC;cAAEN,UAAU,EAAVA,UAAU;cAAEpF,MAAM,EAANA,MAAM;cAAEF,MAAM,EAANA,MAAM;cAAE3C,SAAS,EAATA;YAAU,CAAC,CAAC;YAC9E,IAAMwI,SAAS,GAAG,OAAOF,UAAU,CAAClO,KAAK,KAAK,QAAQ;YACtD,IAAMqO,WAAW,GAAA9O,aAAA,CAAAA,aAAA,KACZmL,eAAe,CAACjC,MAAM,EAAEF,MAAM,EAAE2F,UAAU,CAAClO,KAAK,CAAC,GAChDkO,UAAU,CAACd,KAAK,IAAI,CAAC,CAAC,CAC3B;YACD,oBACElP,MAAA,YAAA0O,aAAA;cACEC,SAAS,EAAE,QAAQ,IAAIoB,MAAM,GAAG,WAAW,GAAGA,MAAM,GAAG,EAAE,CAAC,IAAIG,SAAS,GAAG,iBAAiB,GAAG,EAAE,CAAC,IAAIF,UAAU,CAACrB,SAAS,GAAG,GAAG,GAAGqB,UAAU,CAACrB,SAAS,GAAG,EAAE,CAAE;cAC7JhL,GAAG,WAAA+C,MAAA,CAAW4I,OAAO,OAAA5I,MAAA,CAAInB,CAAC,CAAG;cAC7ByJ,OAAO,EACLxB,eAAe,IACfA,eAAe,CAACwC,UAAU,CAAClO,KAAK,EAAEyI,MAAM,EAAEF,MAAM,CACjD;cACD6E,KAAK,EAAEtO,MAAM,CAACC,IAAI,CAACsP,WAAW,CAAC,CAAC5O,MAAM,GAAG,CAAC,GAAG4O,WAAW,GAAG1K;YAAU,GAEpEuK,UAAU,CAACI,QACV,CAAC;UAET,CAAC,CAAC,EAEDnF,UAAU,CAAClD,IAAI,IAAIkE,WAAW,GAAG,CAAC,iBACjCjM,MAAA,YAAA0O,aAAA;YAAI/K,GAAG,EAAC,eAAe;YAACuL,KAAK,EAAE;cAAEC,QAAQ,EAAElD;YAAY;UAAE,CAAE,CAC5D,eACDjM,MAAA,YAAA0O,aAAA;YACEC,SAAS,EAAE,UAAU,IAAI,OAAOc,cAAc,CAAC3N,KAAK,KAAK,QAAQ,GAAG,iBAAiB,GAAG,EAAE,CAAE;YAC5FkN,OAAO,EACLxB,eAAe,IACfA,eAAe,CAACiC,cAAc,CAAC3N,KAAK,EAAEyI,MAAM,EAAE,CAAC,IAAI,CAAC,CACrD;YACD2E,KAAK,EAAExC,cAAc,CAAC+C,cAAc,CAAC3N,KAAK,CAAC,IAAI2N,cAAc,CAACP;UAAM,GAEnEO,cAAc,CAACW,QACd,CACF,CAAC;QAET,CAAC,CAAC,EAGDnF,UAAU,CAAChD,IAAI,IAAIsD,YAAY,GAAG,CAAC,iBAClCvL,MAAA,YAAA0O,aAAA;UAAI/K,GAAG,EAAC,oBAAoB;UAACuL,KAAK,EAAE;YAAEE,MAAM,EAAE7D;UAAa;QAAE,gBAC3DvL,MAAA,YAAA0O,aAAA;UAAIK,OAAO,EAAE;QAAI,CAAE,CACjB,CACL,EAEAzC,cAAc,IAAI,IAAI,CAAC1E,KAAK,CAACiD,UAAU,IAAIQ,cAAc,CAAC9J,MAAM,GAAG,IAAI,CAACqG,KAAK,CAACoD,QAAQ,IAAI,CAACC,UAAU,CAAChD,IAAI,IACzG7F,KAAK,CAACmB,IAAI,CAAC;UAAEhC,MAAM,EAAE,IAAI,CAACqG,KAAK,CAACoD,QAAQ,GAAGK,cAAc,CAAC9J;QAAO,CAAC,CAAC,CAACwI,GAAG,CAAC,UAACkF,CAAC,EAAEoB,MAAM;UAAA,oBAChFrQ,MAAA,YAAA0O,aAAA;YAAI/K,GAAG,WAAA+C,MAAA,CAAW2J,MAAM,CAAG;YAAC1B,SAAS,EAAC;UAAyB,gBAC7D3O,MAAA,YAAA0O,aAAA;YAAIC,SAAS,EAAC;UAAc,GAAE/D,WAAW,GAAGS,cAAc,CAAC9J,MAAM,GAAG8O,MAAM,GAAG,CAAM,CAAC,eACpFrQ,MAAA,YAAA0O,aAAA;YAAIC,SAAS,EAAC,aAAa;YAACI,OAAO,EAAE/G,QAAQ,CAACzG,MAAM,IAAIuG,QAAQ,CAACvG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;UAAE,CAAK,CAAC,EAC5FwK,cAAc,CAAChC,GAAG,CAAC,UAACM,MAAM,EAAE9E,CAAC;YAAA,oBAAKvF,MAAA,YAAA0O,aAAA;cAAI/K,GAAG,WAAA+C,MAAA,CAAW2J,MAAM,OAAA3J,MAAA,CAAInB,CAAC,CAAG;cAACoJ,SAAS,EAAC;YAAqB,CAAK,CAAC;UAAA,EAAC,eAC1G3O,MAAA,YAAA0O,aAAA;YAAIC,SAAS,EAAC;UAAuB,CAAK,CACxC,CAAC;QAAA,CACN,CACF,eAGD3O,MAAA,YAAA0O,aAAA;UAAIC,SAAS,EAAC;QAAa,GACxBrC,cAAc,iBAAItM,MAAA,YAAA0O,aAAA;UAAIC,SAAS,EAAC;QAAe,CAAK,CAAC,eACtD3O,MAAA,YAAA0O,aAAA;UACEC,SAAS,EAAC,eAAe;UACzBI,OAAO,EAAE/G,QAAQ,CAACzG,MAAM,IAAIuG,QAAQ,CAACvG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,GAC5D,QAEG,CAAC,EAEJ0J,UAAU,CAAClD,IAAI,IAAIiE,UAAU,GAAG,CAAC,iBAChChM,MAAA,YAAA0O,aAAA;UAAI/K,GAAG,EAAC,oBAAoB;UAACuL,KAAK,EAAE;YAAEC,QAAQ,EAAEnD;UAAW;QAAE,CAAE,CAChE,EACAD,cAAc,CAAChC,GAAG,CAAC,UAAUM,MAAM,EAAEvG,CAAC,EAAE;UACvC,IAAMyL,eAAe,GAAG7H,SAAS,CAACa,aAAa,CAAC,EAAE,EAAE8B,MAAM,CAAC;UAC3D,IAAM0F,MAAM,GAAGjI,QAAQ,CAACvG,MAAM,GAAG8I,MAAM,CAAC9I,MAAM;UAC9C,IAAM+O,QAAQ,GAAGf,eAAe,CAACzN,KAAK,CAAC,CAAC;UACxC,IAAMoO,SAAS,GAAG,OAAOI,QAAQ,KAAK,QAAQ;UAC9C,oBACEtQ,MAAA,YAAA0O,aAAA;YACEC,SAAS,EAAE,UAAU,IAAIoB,MAAM,GAAG,WAAW,GAAGA,MAAM,GAAG,EAAE,CAAC,IAAIG,SAAS,GAAG,iBAAiB,GAAG,EAAE,CAAE;YACpGvM,GAAG,UAAA+C,MAAA,CAAU5C,CAAC,CAAG;YACjBkL,OAAO,EACLxB,eAAe,IACfA,eAAe,CAAC8C,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAEjG,MAAM,CACzC;YACD6E,KAAK,EAAEzC,cAAc,CAAC6D,QAAQ;UAAE,GAE/Bf,eAAe,CAACgB,MAAM,CAACD,QAAQ,CAC9B,CAAC;QAET,CAAC,CAAC,EACDrF,UAAU,CAAClD,IAAI,IAAIkE,WAAW,GAAG,CAAC,iBACjCjM,MAAA,YAAA0O,aAAA;UAAI/K,GAAG,EAAC,qBAAqB;UAACuL,KAAK,EAAE;YAAEC,QAAQ,EAAElD;UAAY;QAAE,CAAE,CAClE,eAEDjM,MAAA,YAAA0O,aAAA;UACEM,OAAO,EACLxB,eAAe,IACfA,eAAe,CAAClF,oBAAoB,CAACxG,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAC7D;UACD6M,SAAS,EAAE,eAAe,IAAI,OAAOrG,oBAAoB,CAACxG,KAAK,CAAC,CAAC,KAAK,QAAQ,GAAG,iBAAiB,GAAG,EAAE;QAAE,GAExGwG,oBAAoB,CAACiI,MAAM,CAACjI,oBAAoB,CAACxG,KAAK,CAAC,CAAC,CACvD,CACF,CACC,CACF,CACR;;QAED;QACA,IAAIyK,aAAa,EAAE;UACjB,oBACEvM,MAAA,YAAA0O,aAAA;YACEC,SAAS,EAAC,qBAAqB;YAC/BO,KAAK,EAAE;cACLsB,SAAS,EAAE3H,QAAQ,CAACO,eAAe;cACnCqH,QAAQ,EAAE5H,QAAQ,CAACQ,cAAc;cACjCqH,QAAQ,EAAE,MAAM;cAChBC,QAAQ,EAAE;YACZ,CAAE;YACFC,QAAQ,EAAErC;UAAa,GAEtBE,YACE,CAAC;QAEV;QAEA,OAAOA,YAAY;MACrB;IAAC;EAAA,EAnbyBoC,iBAAK,CAACC,aAAa;EAsb/CxJ,aAAa,CAACyJ,YAAY,GAAGpJ,oBAAS,CAACoJ,YAAY;EACnDzJ,aAAa,CAAC0J,SAAS,GAAGrJ,oBAAS,CAACqJ,SAAS;EAC7C1J,aAAa,CAACyJ,YAAY,CAAClE,wBAAwB,GAAG3G,sBAAsB;EAC5EoB,aAAa,CAACyJ,YAAY,CAACtD,YAAY,GAAG,CAAC,CAAC;EAC5CnG,aAAa,CAAC0J,SAAS,CAACnE,wBAAwB,GAAGoE,qBAAS,CAACC,IAAI;EACjE5J,aAAa,CAAC0J,SAAS,CAACvD,YAAY,GAAGwD,qBAAS,CAACE,MAAM;EACvD7J,aAAa,CAACyJ,YAAY,CAACvH,WAAW,GAAG,IAAI;EAC7ClC,aAAa,CAAC0J,SAAS,CAACxH,WAAW,GAAGyH,qBAAS,CAACG,IAAI;EACpD9J,aAAa,CAACyJ,YAAY,CAACzE,cAAc,GAAG,IAAI;EAChDhF,aAAa,CAAC0J,SAAS,CAAC1E,cAAc,GAAG2E,qBAAS,CAACG,IAAI;EACvD,OAAO9J,aAAa;AACtB;AAAC,IAEK+J,iBAAiB,0BAAAC,qBAAA;EAAA,SAAAD,kBAAA;IAAA5N,eAAA,OAAA4N,iBAAA;IAAA,OAAAjN,UAAA,OAAAiN,iBAAA,EAAA/P,SAAA;EAAA;EAAA4D,SAAA,CAAAmM,iBAAA,EAAAC,qBAAA;EAAA,OAAA1N,YAAA,CAAAyN,iBAAA;IAAA1N,GAAA;IAAA7B,KAAA,EACrB,SAAA0F,MAAMA,CAAA,EAAG;MACP,IAAME,SAAS,GAAG,IAAIC,oBAAS,CAAC,IAAI,CAACC,KAAK,CAAC;MAC3C,IAAMM,OAAO,GAAGR,SAAS,CAACS,UAAU,CAAC,CAAC;MACtC,IAAMC,OAAO,GAAGV,SAAS,CAACW,UAAU,CAAC,CAAC;MACtC,IAAIH,OAAO,CAAC3G,MAAM,KAAK,CAAC,EAAE;QACxB2G,OAAO,CAAC/G,IAAI,CAAC,EAAE,CAAC;MAClB;MACA,IAAIiH,OAAO,CAAC7G,MAAM,KAAK,CAAC,EAAE;QACxB6G,OAAO,CAACjH,IAAI,CAAC,EAAE,CAAC;MAClB;MAEA,IAAMoQ,SAAS,GAAG7J,SAAS,CAACE,KAAK,CAACK,IAAI,CAAC8B,GAAG,CAAC,UAAArJ,CAAC;QAAA,OAAIA,CAAC;MAAA,EAAC;MAClD,IAAI0H,OAAO,CAAC7G,MAAM,KAAK,CAAC,IAAI6G,OAAO,CAAC,CAAC,CAAC,CAAC7G,MAAM,KAAK,CAAC,EAAE;QACnDgQ,SAAS,CAACpQ,IAAI,CAAC,IAAI,CAACyG,KAAK,CAAC4J,cAAc,CAAC;MAC3C,CAAC,MAAM;QACLpJ,OAAO,CAAC2B,GAAG,CAAC,UAAAkD,CAAC;UAAA,OAAIsE,SAAS,CAACpQ,IAAI,CAAC8L,CAAC,CAACrG,IAAI,CAAC,GAAG,CAAC,CAAC;QAAA,EAAC;MAC/C;MAEA,IAAM6K,MAAM,GAAGvJ,OAAO,CAAC6B,GAAG,CAAC,UAAArJ,CAAC,EAAI;QAC9B,IAAMgR,GAAG,GAAGhR,CAAC,CAACqJ,GAAG,CAAC,UAAArE,CAAC;UAAA,OAAIA,CAAC;QAAA,EAAC;QACzB0C,OAAO,CAAC2B,GAAG,CAAC,UAAAkD,CAAC,EAAI;UACf,IAAME,CAAC,GAAGzF,SAAS,CAACa,aAAa,CAAC7H,CAAC,EAAEuM,CAAC,CAAC,CAACnL,KAAK,CAAC,CAAC;UAC/C4P,GAAG,CAACvQ,IAAI,CAACgM,CAAC,GAAGA,CAAC,GAAG,EAAE,CAAC;QACtB,CAAC,CAAC;QACF,OAAOuE,GAAG;MACZ,CAAC,CAAC;MAEFD,MAAM,CAACE,OAAO,CAACJ,SAAS,CAAC;MAEzB,oBACEvR,MAAA,YAAA0O,aAAA;QACE5M,KAAK,EAAE2P,MAAM,CAAC1H,GAAG,CAAC,UAAArJ,CAAC;UAAA,OAAIA,CAAC,CAACkG,IAAI,CAAC,IAAI,CAAC;QAAA,EAAC,CAACA,IAAI,CAAC,IAAI,CAAE;QAChDsI,KAAK,EAAE;UAAE0C,KAAK,EAAEC,MAAM,CAACC,UAAU,GAAG,CAAC;UAAE1C,MAAM,EAAEyC,MAAM,CAACE,WAAW,GAAG;QAAE,CAAE;QACxEC,QAAQ,EAAE;MAAK,CAChB,CAAC;IAEN;EAAC;AAAA,EArC6BnB,iBAAK,CAACC,aAAa;AAwCnDO,iBAAiB,CAACN,YAAY,GAAGpJ,oBAAS,CAACoJ,YAAY;AACvDM,iBAAiB,CAACL,SAAS,GAAGrJ,oBAAS,CAACqJ,SAAS;AAAC,IAAAiB,QAAA,GAAAC,OAAA,cAEnC;EACbC,KAAK,EAAE/K,YAAY,CAAC,CAAC;EACrB,eAAe,EAAEA,YAAY,CAAC;IAAEuF,WAAW,EAAE;EAAO,CAAC,CAAC;EACtD,mBAAmB,EAAEvF,YAAY,CAAC;IAAEuF,WAAW,EAAE;EAAM,CAAC,CAAC;EACzD,mBAAmB,EAAEvF,YAAY,CAAC;IAAEuF,WAAW,EAAE;EAAM,CAAC,CAAC;EACzD,gBAAgB,EAAE0E;AACpB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"TableRenderers.js","names":["_react","_interopRequireDefault","require","_propTypes","_Utilities","_CellPipeline","_VirtualScroller","_useColumnResize2","e","__esModule","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","ownKeys","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","_createForOfIteratorHelper","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","_n","F","s","done","f","TypeError","a","u","next","_arrayLikeToArray","toString","slice","constructor","name","from","test","_classCallCheck","_defineProperties","key","_createClass","prototype","i","_toPrimitive","_typeof","toPrimitive","String","Number","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_assertThisInitialized","ReferenceError","Boolean","valueOf","setPrototypeOf","getPrototypeOf","__proto__","_inherits","create","_setPrototypeOf","spanSize","arr","j","no_loop","undefined","x","asc","end","noDraw","len","asc1","end1","stop","redColorScaleGenerator","values","min","Math","max","nonRed","round","backgroundColor","concat","flatKey","join","fromCharCode","has","set","every","add","remove","toggle","makeRenderer","opts","TableRendererInner","_React$PureComponent","render","_this","pivotData","PivotData","props","id","colAttrs","cols","rowAttrs","rows","rowKeys","getRowKeys","colKeys","getColKeys","grandTotalAggregator","getAggregator","pipeline","cellPipeline","CellPipeline","virtConfig","virtualization","scroller","VirtualScroller","enabled","rowHeight","colWidth","overscanRows","overscanCols","containerHeight","containerWidth","threshold","grouping","compactRows","specialCase","rowGroupBefore","folded","state","Set","isFolded","map","fold","setState","_iterator","_step","_loop","colKey","startsWith","rowKey","err","allColKeys","allRowKeys","totalRows","startOffset","pagination","start","page","pageSize","shouldVirt","shouldVirtualize","scrollTop","scrollLeft","visibleRowKeys","rowTopPad","rowBottomPad","virtualRowStartOffset","rowRange","getVisibleRowRange","startIndex","endIndex","topPadding","bottomPadding","visibleColKeys","colLeftPad","colRightPad","colRange","getVisibleColRange","leftPadding","rightPadding","showRowNumbers","isVirtualized","valueCellColors","rowTotalColors","colTotalColors","heatmapMode","colorScaleGenerator","tableColorScaleGenerator","rowTotalValues","colTotalValues","allValues","c","colorScale","v","rowColorScales","rowValues","colColorScales","colValues","getClickHandler","tableOptions","clickCallback","filters","_i","_Object$keys","attr","_i2","_Object$keys2","rbClass","cbClass","colGroupBefore","clickClass","pred","closed","handleScroll","currentTarget","resizeWidths","_resizeWidths","onStartResize","_onStartResize","buildColgroup","createElement","style","width","minWidth","_","label","w","tableContent","className","clickable","levelKeys","rowSpan","colSpan","onClick","isLastHeaderRow","colLabel","onPointerDown","height","localI","globalI","totalAggregator","rowGap","rowTotalResult","processTotal","aggregator","type","txt","paddingLeft","colGap","cellResult","process","isNumeric","mergedStyle","rendered","padIdx","totalVal","format","maxHeight","maxWidth","overflow","position","onScroll","React","PureComponent","defaultProps","propTypes","PropTypes","func","object","bool","TableRenderer","resizing","columnResizing","_useColumnResize","useColumnResize","initialWidths","columnWidths","onWidthChange","onColumnWidthChange","widths","startResize","TSVExportRenderer","_React$PureComponent2","headerRow","aggregatorName","result","row","unshift","window","innerWidth","innerHeight","readOnly","_default","exports","Table"],"sources":["../src/TableRenderers.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { PivotData } from './Utilities';\nimport { CellPipeline } from './core/CellPipeline';\nimport { VirtualScroller } from './core/VirtualScroller';\nimport { useColumnResize } from './hooks/useColumnResize';\n\n// helper function for setting row/col-span in pivotTableRenderer\nconst spanSize = function (arr, i, j, no_loop = false) {\n let x;\n if (i !== 0) {\n let asc, end;\n let noDraw = true;\n for (\n x = 0, end = j, asc = end >= 0;\n asc ? x <= end : x >= end;\n asc ? x++ : x--\n ) {\n if (arr[i - 1][x] !== arr[i][x]) {\n noDraw = false;\n }\n }\n if (noDraw) {\n return -1;\n }\n }\n let len = 0;\n while (i + len < arr.length) {\n let asc1, end1;\n let stop = false;\n for (\n x = no_loop ? j : 0, end1 = j, asc1 = end1 >= 0;\n asc1 ? x <= end1 : x >= end1;\n asc1 ? x++ : x--\n ) {\n if (arr[i][x] !== arr[i + len][x]) {\n stop = true;\n }\n }\n if (stop) {\n break;\n }\n len++;\n }\n return len;\n};\n\nfunction redColorScaleGenerator(values) {\n const min = Math.min.apply(Math, values);\n const max = Math.max.apply(Math, values);\n return x => {\n // eslint-disable-next-line no-magic-numbers\n const nonRed = 255 - Math.round((255 * (x - min)) / (max - min));\n return { backgroundColor: `rgb(255,${nonRed},${nonRed})` };\n };\n}\n\nconst flatKey = arr => arr.join(String.fromCharCode(0));\nconst has = (set, arr) => arr.every(set.has, set);\nconst add = (set, arr) => (arr.forEach(set.add, set) || set);\nconst remove = (set, arr) => (arr.forEach(set.delete, set) || set);\nconst toggle = (set, arr) => (has(set, arr) ? remove : add)(set, arr);\n\nfunction makeRenderer(opts = {}) {\n // ─── Inner class (toda la lógica de render) ──────────────────────\n class TableRendererInner extends React.PureComponent {\n render() {\n const pivotData = new PivotData(this.props);\n const id = pivotData.props.id;\n const colAttrs = pivotData.props.cols;\n const rowAttrs = pivotData.props.rows;\n let rowKeys = pivotData.getRowKeys(true);\n let colKeys = pivotData.getColKeys(true);\n const grandTotalAggregator = pivotData.getAggregator([], []);\n\n // ─── Cell Pipeline ────────────────────────────────────────────────\n const pipeline = this.props.cellPipeline\n ? new CellPipeline(this.props.cellPipeline)\n : CellPipeline.default();\n\n // ─── Virtualización ───────────────────────────────────────────────\n const virtConfig = this.props.virtualization || {};\n const scroller = new VirtualScroller({\n enabled: virtConfig.enabled !== undefined ? virtConfig.enabled : false,\n rowHeight: virtConfig.rowHeight || 32,\n colWidth: virtConfig.colWidth || 100,\n overscanRows: virtConfig.overscanRows || 5,\n overscanCols: virtConfig.overscanCols || 3,\n containerHeight: virtConfig.containerHeight || 400,\n containerWidth: virtConfig.containerWidth || 800,\n threshold: virtConfig.threshold || 100,\n });\n\n const grouping = pivotData.props.grouping;\n const compactRows = grouping && this.props.compactRows;\n // speacial case for spanSize counting (no_loop)\n const specialCase = grouping && !this.props.rowGroupBefore;\n const folded = (this.state || {}).folded || new Set();\n const isFolded = keys => has(folded, keys.map(flatKey));\n const fold = keys => this.setState({ folded: toggle(new Set(folded), keys.map(flatKey)) });\n\n if (grouping) {\n for (const key of folded) {\n colKeys = colKeys.filter(colKey => !flatKey(colKey).startsWith(key + String.fromCharCode(0)));\n rowKeys = rowKeys.filter(rowKey => !flatKey(rowKey).startsWith(key + String.fromCharCode(0)));\n }\n }\n\n // Guardar todos los colKeys para totales (SIEMPRE calcula sobre todo)\n const allColKeys = colKeys;\n const allRowKeys = rowKeys;\n\n const totalRows = rowKeys.length;\n let startOffset = 0;\n if (this.props.pagination) {\n const start = (this.props.page - 1) * this.props.pageSize;\n startOffset = start;\n const end = start + this.props.pageSize;\n rowKeys = rowKeys.slice(start, end);\n }\n\n // Aplicar virtualización bidireccional\n const shouldVirt = scroller.shouldVirtualize(rowKeys.length, colKeys.length);\n const scrollTop = (this.state || {}).scrollTop || 0;\n const scrollLeft = (this.state || {}).scrollLeft || 0;\n\n let visibleRowKeys = rowKeys;\n let rowTopPad = 0;\n let rowBottomPad = 0;\n let virtualRowStartOffset = 0;\n\n if (shouldVirt.rows) {\n const rowRange = scroller.getVisibleRowRange(scrollTop, rowKeys.length);\n visibleRowKeys = rowKeys.slice(rowRange.startIndex, rowRange.endIndex + 1);\n rowTopPad = rowRange.topPadding;\n rowBottomPad = rowRange.bottomPadding;\n virtualRowStartOffset = rowRange.startIndex;\n }\n\n let visibleColKeys = colKeys;\n let colLeftPad = 0;\n let colRightPad = 0;\n\n if (shouldVirt.cols) {\n const colRange = scroller.getVisibleColRange(scrollLeft, colKeys.length);\n visibleColKeys = colKeys.slice(colRange.startIndex, colRange.endIndex + 1);\n colLeftPad = colRange.leftPadding;\n colRightPad = colRange.rightPadding;\n }\n\n const showRowNumbers = this.props.showRowNumbers !== false;\n const isVirtualized = shouldVirt.rows || shouldVirt.cols;\n\n let valueCellColors = () => { };\n let rowTotalColors = () => { };\n let colTotalColors = () => { };\n if (opts.heatmapMode) {\n const colorScaleGenerator = this.props.tableColorScaleGenerator;\n const rowTotalValues = colKeys.map(x =>\n pivotData.getAggregator([], x).value()\n );\n rowTotalColors = colorScaleGenerator(rowTotalValues);\n const colTotalValues = rowKeys.map(x =>\n pivotData.getAggregator(x, []).value()\n );\n colTotalColors = colorScaleGenerator(colTotalValues);\n\n if (opts.heatmapMode === 'full') {\n const allValues = [];\n rowKeys.map(r =>\n colKeys.map(c =>\n allValues.push(pivotData.getAggregator(r, c).value())\n )\n );\n const colorScale = colorScaleGenerator(allValues);\n valueCellColors = (r, c, v) => colorScale(v);\n } else if (opts.heatmapMode === 'row') {\n const rowColorScales = {};\n rowKeys.map(r => {\n const rowValues = colKeys.map(x =>\n pivotData.getAggregator(r, x).value()\n );\n rowColorScales[r] = colorScaleGenerator(rowValues);\n });\n valueCellColors = (r, c, v) => rowColorScales[r](v);\n } else if (opts.heatmapMode === 'col') {\n const colColorScales = {};\n colKeys.map(c => {\n const colValues = rowKeys.map(x =>\n pivotData.getAggregator(x, c).value()\n );\n colColorScales[c] = colorScaleGenerator(colValues);\n });\n valueCellColors = (r, c, v) => colColorScales[c](v);\n }\n }\n\n const getClickHandler =\n this.props.tableOptions && this.props.tableOptions.clickCallback\n ? (value, rowValues, colValues) => {\n const filters = {};\n for (const i of Object.keys(colAttrs || {})) {\n const attr = colAttrs[i];\n if (colValues[i] !== null) {\n filters[attr] = colValues[i];\n }\n }\n for (const i of Object.keys(rowAttrs || {})) {\n const attr = rowAttrs[i];\n if (rowValues[i] !== null) {\n filters[attr] = rowValues[i];\n }\n }\n return e =>\n this.props.tableOptions.clickCallback(\n e,\n value,\n filters,\n pivotData\n );\n }\n : null;\n\n const rbClass = grouping ? this.props.rowGroupBefore ? \"rowGroupBefore\" : \"rowGroupAfter\" : \"\";\n const cbClass = grouping ? this.props.colGroupBefore ? \"colGroupBefore\" : \"colGroupAfter\" : \"\";\n const clickClass = (pred, closed) => pred ? \" pvtClickable\" + (closed ? \" closed\" : \"\") : \"\";\n // ─── Render de la tabla ────────────────────────────────────────────\n const handleScroll = isVirtualized ? (e) => {\n this.setState({\n scrollTop: e.currentTarget.scrollTop,\n scrollLeft: e.currentTarget.scrollLeft,\n });\n } : null;\n\n // ─── Column widths (resize) ────────────────────────────────\n const resizeWidths = this.props._resizeWidths || {};\n const onStartResize = this.props._onStartResize || null;\n\n // Construir colgroup con anchos de todas las columnas de datos\n const buildColgroup = () => {\n const cols = [];\n // Col para row numbers\n if (showRowNumbers) cols.push(<col key=\"col-rownum\" style={{ width: '40px', minWidth: '40px' }} />);\n // Cols para rowAttrs\n rowAttrs.forEach((_, i) => cols.push(<col key={`col-rowattr-${i}`} />));\n // Col padding virtual izquierdo\n if (shouldVirt.cols && colLeftPad > 0) cols.push(<col key=\"col-virt-left\" style={{ width: colLeftPad }} />);\n // Cols para cada columna de datos\n visibleColKeys.forEach((colKey) => {\n const label = colKey.join('\\u0000');\n const w = resizeWidths[label];\n cols.push(<col key={`col-data-${label}`} style={w ? { width: w, minWidth: w } : undefined} />);\n });\n // Col padding virtual derecho\n if (shouldVirt.cols && colRightPad > 0) cols.push(<col key=\"col-virt-right\" style={{ width: colRightPad }} />);\n // Col para totales\n cols.push(<col key=\"col-totals\" />);\n return <colgroup>{cols}</colgroup>;\n };\n\n const tableContent = (\n <table id={id} className={`pvtTable ${rbClass} ${cbClass}${onStartResize ? ' pvtResizable' : ''}`}>\n {buildColgroup()}\n <thead>\n {colAttrs.map(function (c, j) {\n const clickable = grouping && colAttrs.length > j + 1;\n const levelKeys = allColKeys.filter(x => x.length === j + 1);\n return (\n <tr key={`colAttr${j}`}>\n {showRowNumbers && j === 0 && (\n <th className=\"pvtRowNumber pvtAxisLabel\" rowSpan={colAttrs.length + (rowAttrs.length === 0 ? 0 : 1)}>#</th>\n )}\n {j === 0 && rowAttrs.length !== 0 && (\n <th colSpan={rowAttrs.length} rowSpan={colAttrs.length} />\n )}\n <th className={\"pvtAxisLabel\" + clickClass(clickable, isFolded(levelKeys))}\n onClick={clickable ? _ => fold(levelKeys) : null}\n >{c}</th>\n {shouldVirt.cols && colLeftPad > 0 && j === 0 && (\n <th key=\"col-pad-left\" style={{ minWidth: colLeftPad }} />\n )}\n {visibleColKeys.map(function (colKey, i) {\n const x = spanSize(visibleColKeys, i, j);\n if (x === -1) {\n return null;\n }\n // Usar el colKey completo como clave de resize solo en la última fila de headers\n const isLastHeaderRow = j === colAttrs.length - 1;\n const colLabel = colKey.join('\\u0000');\n return (\n <th\n className={\"pvtColLabel\" + clickClass(clickable && colKey[j], isFolded([colKey.slice(0, j + 1)]))}\n key={`colKey-${i}-${j}-${colKey[j]}`}\n colSpan={x}\n rowSpan={\n isLastHeaderRow && rowAttrs.length !== 0\n ? 2\n : 1\n }\n onClick={clickable && colKey[j] ? _ => fold([colKey.slice(0, j + 1)]) : null}\n >\n {colKey[j]}\n {onStartResize && isLastHeaderRow && (\n <span\n className=\"pvtResizeHandle\"\n onPointerDown={e => onStartResize(colLabel, e)}\n />\n )}\n </th>\n );\n })}\n {shouldVirt.cols && colRightPad > 0 && j === 0 && (\n <th key=\"col-pad-right\" style={{ minWidth: colRightPad }} />\n )}\n\n {j === 0 && (\n <th\n className=\"pvtTotalLabel\"\n rowSpan={\n colAttrs.length + (rowAttrs.length === 0 ? 0 : 1)\n }\n >\n Totals\n </th>\n )}\n </tr>\n );\n })}\n\n {rowAttrs.length !== 0 && (\n <tr>\n {showRowNumbers && colAttrs.length === 0 && (\n <th className=\"pvtRowNumber pvtAxisLabel\" rowSpan=\"1\">#</th>\n )}\n {rowAttrs.map(function (r, i) {\n const clickable = grouping && rowAttrs.length > i + 1;\n const levelKeys = allRowKeys.filter(x => x.length === i + 1);\n return (\n <th className={\"pvtAxisLabel\" + clickClass(clickable, isFolded(levelKeys))}\n onClick={clickable ? _ => fold(levelKeys) : null}\n key={`rowAttr${i}`}>\n {r}\n </th>\n );\n })}\n <th className=\"pvtTotalLabel\">\n {colAttrs.length === 0 ? 'Totals' : null}\n </th>\n </tr>\n )}\n </thead>\n\n <tbody>\n {/* Spacer top para virtualización de filas */}\n {shouldVirt.rows && rowTopPad > 0 && (\n <tr key=\"virt-top-spacer\" style={{ height: rowTopPad }}>\n <td colSpan={999} />\n </tr>\n )}\n\n {visibleRowKeys.map(function (rowKey, localI) {\n const globalI = shouldVirt.rows ? virtualRowStartOffset + localI : localI;\n const totalAggregator = pivotData.getAggregator(rowKey, []);\n const rowGap = rowAttrs.length - rowKey.length;\n const rowTotalResult = pipeline.processTotal({ aggregator: totalAggregator, rowKey, type: 'row' });\n return (\n <tr key={`rowKeyRow${globalI}`}\n className={(rowGap ? \"pvtLevel\" + rowGap : \"pvtData\") + \" pvtRow-data\"}\n style={shouldVirt.rows ? { height: scroller.rowHeight } : undefined}>\n {showRowNumbers && (\n <th className=\"pvtRowNumber\">{startOffset + globalI + 1}</th>\n )}\n {rowKey.map(function (txt, j) {\n if (compactRows && j < rowKey.length - 1) {\n return null;\n }\n const clickable = grouping && rowAttrs.length > j + 1;\n const x = compactRows ? 1 : spanSize(visibleRowKeys, localI, j, specialCase);\n if (x === -1) {\n return null;\n }\n return (\n <th\n key={`rowKeyLabel-${globalI}-${j}-${txt}`}\n className={\"pvtRowLabel\" + clickClass(clickable && rowKey[j], isFolded([rowKey.slice(0, j + 1)]))}\n rowSpan={x}\n colSpan={\n compactRows ?\n rowAttrs.length + 1 :\n j === rowAttrs.length - 1 && colAttrs.length !== 0\n ? 2\n : 1\n }\n style={{ paddingLeft: compactRows ? `calc(var(--pvt-row-padding, 5px) + ${j} * var(--pvt-row-indent, 20px))` : null }}\n onClick={clickable && rowKey[j] ? _ => fold([rowKey.slice(0, j + 1)]) : null}\n >\n {txt}\n </th>\n );\n })}\n {!compactRows && rowGap\n ? <th className=\"pvtRowLabel\" colSpan={rowGap + 1}>{\"Total (\" + rowKey[rowKey.length - 1] + \")\"}</th>\n : null\n }\n {/* Spacer left para virtualización de columnas */}\n {shouldVirt.cols && colLeftPad > 0 && (\n <td key=\"col-pad-left\" style={{ minWidth: colLeftPad }} />\n )}\n {visibleColKeys.map(function (colKey, j) {\n const aggregator = pivotData.getAggregator(rowKey, colKey);\n const colGap = colAttrs.length - colKey.length;\n const cellResult = pipeline.process({ aggregator, rowKey, colKey, pivotData });\n const isNumeric = typeof cellResult.value === 'number';\n const mergedStyle = {\n ...valueCellColors(rowKey, colKey, cellResult.value),\n ...(cellResult.style || {}),\n };\n return (\n <td\n className={\"pvtVal\" + (colGap ? \" pvtLevel\" + colGap : \"\") + (isNumeric ? \" pvtVal-numeric\" : \"\") + (cellResult.className ? \" \" + cellResult.className : \"\")}\n key={`pvtVal${globalI}-${j}`}\n onClick={\n getClickHandler &&\n getClickHandler(cellResult.value, rowKey, colKey)\n }\n style={Object.keys(mergedStyle).length > 0 ? mergedStyle : undefined}\n >\n {cellResult.rendered}\n </td>\n );\n })}\n {/* Spacer right para virtualización de columnas */}\n {shouldVirt.cols && colRightPad > 0 && (\n <td key=\"col-pad-right\" style={{ minWidth: colRightPad }} />\n )}\n <td\n className={\"pvtTotal\" + (typeof rowTotalResult.value === 'number' ? \" pvtVal-numeric\" : \"\")}\n onClick={\n getClickHandler &&\n getClickHandler(rowTotalResult.value, rowKey, [null])\n }\n style={colTotalColors(rowTotalResult.value) || rowTotalResult.style}\n >\n {rowTotalResult.rendered}\n </td>\n </tr>\n );\n })}\n\n {/* Spacer bottom para virtualización de filas */}\n {shouldVirt.rows && rowBottomPad > 0 && (\n <tr key=\"virt-bottom-spacer\" style={{ height: rowBottomPad }}>\n <td colSpan={999} />\n </tr>\n )}\n\n {showRowNumbers && this.props.pagination && visibleRowKeys.length < this.props.pageSize && !shouldVirt.rows && (\n Array.from({ length: this.props.pageSize - visibleRowKeys.length }).map((_, padIdx) => (\n <tr key={`padRow${padIdx}`} className=\"pvtRow-data pvtEmptyRow\">\n <th className=\"pvtRowNumber\">{startOffset + visibleRowKeys.length + padIdx + 1}</th>\n <th className=\"pvtRowLabel\" colSpan={rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)}></th>\n {visibleColKeys.map((colKey, j) => <td key={`padVal${padIdx}-${j}`} className=\"pvtVal pvtEmptyCell\"></td>)}\n <td className=\"pvtTotal pvtEmptyCell\"></td>\n </tr>\n ))\n )}\n\n {/* Totals row — siempre calcula sobre TODOS los datos */}\n <tr className=\"pvtTotalRow\">\n {showRowNumbers && <th className=\"pvtTotalLabel\"></th>}\n <th\n className=\"pvtTotalLabel\"\n colSpan={rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)}\n >\n Totals\n </th>\n\n {shouldVirt.cols && colLeftPad > 0 && (\n <td key=\"total-col-pad-left\" style={{ minWidth: colLeftPad }} />\n )}\n {visibleColKeys.map(function (colKey, i) {\n const totalAggregator = pivotData.getAggregator([], colKey);\n const colGap = colAttrs.length - colKey.length;\n const totalVal = totalAggregator.value();\n const isNumeric = typeof totalVal === 'number';\n return (\n <td\n className={\"pvtTotal\" + (colGap ? \" pvtLevel\" + colGap : \"\") + (isNumeric ? \" pvtVal-numeric\" : \"\")}\n key={`total${i}`}\n onClick={\n getClickHandler &&\n getClickHandler(totalVal, [null], colKey)\n }\n style={rowTotalColors(totalVal)}\n >\n {totalAggregator.format(totalVal)}\n </td>\n );\n })}\n {shouldVirt.cols && colRightPad > 0 && (\n <td key=\"total-col-pad-right\" style={{ minWidth: colRightPad }} />\n )}\n\n <td\n onClick={\n getClickHandler &&\n getClickHandler(grandTotalAggregator.value(), [null], [null])\n }\n className={\"pvtGrandTotal\" + (typeof grandTotalAggregator.value() === 'number' ? \" pvtVal-numeric\" : \"\")}\n >\n {grandTotalAggregator.format(grandTotalAggregator.value())}\n </td>\n </tr>\n </tbody>\n </table>\n );\n\n // Wrappear en container con scroll si virtualización está activa\n if (isVirtualized) {\n return (\n <div\n className=\"pvtVirtualContainer\"\n style={{\n maxHeight: scroller.containerHeight,\n maxWidth: scroller.containerWidth,\n overflow: 'auto',\n position: 'relative',\n }}\n onScroll={handleScroll}\n >\n {tableContent}\n </div>\n );\n }\n\n return tableContent;\n }\n }\n\n TableRendererInner.defaultProps = PivotData.defaultProps;\n TableRendererInner.propTypes = PivotData.propTypes;\n TableRendererInner.defaultProps.tableColorScaleGenerator = redColorScaleGenerator;\n TableRendererInner.defaultProps.tableOptions = {};\n TableRendererInner.propTypes.tableColorScaleGenerator = PropTypes.func;\n TableRendererInner.propTypes.tableOptions = PropTypes.object;\n TableRendererInner.defaultProps.compactRows = true;\n TableRendererInner.propTypes.compactRows = PropTypes.bool;\n TableRendererInner.defaultProps.showRowNumbers = true;\n TableRendererInner.propTypes.showRowNumbers = PropTypes.bool;\n // Resize props (pasadas internamente desde el wrapper)\n TableRendererInner.propTypes._resizeWidths = PropTypes.object;\n TableRendererInner.propTypes._onStartResize = PropTypes.func;\n\n // ─── Wrapper funcional para poder usar hooks ─────────────────────\n function TableRenderer(props) {\n const resizing = props.columnResizing === true;\n const { widths, startResize } = useColumnResize({\n initialWidths: props.columnWidths || {},\n minWidth: 50,\n onWidthChange: props.onColumnWidthChange,\n });\n return (\n <TableRendererInner\n {...props}\n _resizeWidths={resizing ? widths : {}}\n _onStartResize={resizing ? startResize : null}\n />\n );\n }\n\n TableRenderer.defaultProps = { ...TableRendererInner.defaultProps, columnResizing: false, columnWidths: {} };\n TableRenderer.propTypes = {\n ...TableRendererInner.propTypes,\n columnResizing: PropTypes.bool,\n columnWidths: PropTypes.object,\n onColumnWidthChange: PropTypes.func,\n };\n\n return TableRenderer;\n}\n\nclass TSVExportRenderer extends React.PureComponent {\n render() {\n const pivotData = new PivotData(this.props);\n const rowKeys = pivotData.getRowKeys();\n const colKeys = pivotData.getColKeys();\n if (rowKeys.length === 0) {\n rowKeys.push([]);\n }\n if (colKeys.length === 0) {\n colKeys.push([]);\n }\n\n const headerRow = pivotData.props.rows.map(r => r);\n if (colKeys.length === 1 && colKeys[0].length === 0) {\n headerRow.push(this.props.aggregatorName);\n } else {\n colKeys.map(c => headerRow.push(c.join('-')));\n }\n\n const result = rowKeys.map(r => {\n const row = r.map(x => x);\n colKeys.map(c => {\n const v = pivotData.getAggregator(r, c).value();\n row.push(v ? v : '');\n });\n return row;\n });\n\n result.unshift(headerRow);\n\n return (\n <textarea\n value={result.map(r => r.join('\\t')).join('\\n')}\n style={{ width: window.innerWidth / 2, height: window.innerHeight / 2 }}\n readOnly={true}\n />\n );\n }\n}\n\nTSVExportRenderer.defaultProps = PivotData.defaultProps;\nTSVExportRenderer.propTypes = PivotData.propTypes;\n\nexport default {\n Table: makeRenderer(),\n 'Table Heatmap': makeRenderer({ heatmapMode: 'full' }),\n 'Table Col Heatmap': makeRenderer({ heatmapMode: 'col' }),\n 'Table Row Heatmap': makeRenderer({ heatmapMode: 'row' }),\n 'Exportable TSV': TSVExportRenderer,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useColumnResize = useColumnResize;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
12
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
13
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
14
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
15
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
16
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
17
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
18
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
19
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
20
|
+
/**
|
|
21
|
+
* useColumnResize — Hook para gestionar el redimensionado de columnas.
|
|
22
|
+
*
|
|
23
|
+
* @param {Object} options
|
|
24
|
+
* @param {Object} options.initialWidths - Anchos iniciales { [colKey]: number }
|
|
25
|
+
* @param {number} options.minWidth - Ancho mínimo en px (default: 50)
|
|
26
|
+
* @param {number} options.maxWidth - Ancho máximo en px (default: sin límite)
|
|
27
|
+
* @param {Function} options.onWidthChange - Callback cuando cambian los anchos
|
|
28
|
+
*
|
|
29
|
+
* @returns {{ widths: Object, startResize: Function, isResizing: boolean }}
|
|
30
|
+
*/
|
|
31
|
+
function useColumnResize() {
|
|
32
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
33
|
+
_ref$initialWidths = _ref.initialWidths,
|
|
34
|
+
initialWidths = _ref$initialWidths === void 0 ? {} : _ref$initialWidths,
|
|
35
|
+
_ref$minWidth = _ref.minWidth,
|
|
36
|
+
minWidth = _ref$minWidth === void 0 ? 50 : _ref$minWidth,
|
|
37
|
+
_ref$maxWidth = _ref.maxWidth,
|
|
38
|
+
maxWidth = _ref$maxWidth === void 0 ? null : _ref$maxWidth,
|
|
39
|
+
_ref$onWidthChange = _ref.onWidthChange,
|
|
40
|
+
onWidthChange = _ref$onWidthChange === void 0 ? null : _ref$onWidthChange;
|
|
41
|
+
// widths: { [colKey]: number }
|
|
42
|
+
var _useState = (0, _react.useState)(initialWidths),
|
|
43
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
44
|
+
widths = _useState2[0],
|
|
45
|
+
setWidths = _useState2[1];
|
|
46
|
+
|
|
47
|
+
// Ref para el estado de drag activo (evita closures obsoletas)
|
|
48
|
+
var dragRef = (0, _react.useRef)(null);
|
|
49
|
+
var _useState3 = (0, _react.useState)(false),
|
|
50
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
51
|
+
isResizing = _useState4[0],
|
|
52
|
+
setIsResizing = _useState4[1];
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Iniciar resize para una columna específica.
|
|
56
|
+
* @param {string} colKey - Identificador único de la columna
|
|
57
|
+
* @param {PointerEvent} e
|
|
58
|
+
*/
|
|
59
|
+
var startResize = (0, _react.useCallback)(function (colKey, e) {
|
|
60
|
+
e.preventDefault();
|
|
61
|
+
e.stopPropagation();
|
|
62
|
+
var th = e.currentTarget.closest('th');
|
|
63
|
+
var startWidth = th ? th.offsetWidth : widths[colKey] || 100;
|
|
64
|
+
dragRef.current = {
|
|
65
|
+
colKey: colKey,
|
|
66
|
+
startX: e.clientX,
|
|
67
|
+
startWidth: startWidth
|
|
68
|
+
};
|
|
69
|
+
setIsResizing(true);
|
|
70
|
+
document.body.classList.add('pvt-is-resizing');
|
|
71
|
+
var onPointerMove = function onPointerMove(moveEvent) {
|
|
72
|
+
if (!dragRef.current) return;
|
|
73
|
+
var _dragRef$current = dragRef.current,
|
|
74
|
+
key = _dragRef$current.colKey,
|
|
75
|
+
startX = _dragRef$current.startX,
|
|
76
|
+
sw = _dragRef$current.startWidth;
|
|
77
|
+
var delta = moveEvent.clientX - startX;
|
|
78
|
+
var newWidth = sw + delta;
|
|
79
|
+
|
|
80
|
+
// Aplicar restricciones
|
|
81
|
+
newWidth = Math.max(minWidth, newWidth);
|
|
82
|
+
if (maxWidth) newWidth = Math.min(maxWidth, newWidth);
|
|
83
|
+
setWidths(function (prev) {
|
|
84
|
+
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, key, newWidth));
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
var _onPointerUp = function onPointerUp() {
|
|
88
|
+
if (!dragRef.current) return;
|
|
89
|
+
var key = dragRef.current.colKey;
|
|
90
|
+
setWidths(function (prev) {
|
|
91
|
+
var next = _objectSpread({}, prev);
|
|
92
|
+
if (onWidthChange) {
|
|
93
|
+
onWidthChange(next);
|
|
94
|
+
}
|
|
95
|
+
return next;
|
|
96
|
+
});
|
|
97
|
+
dragRef.current = null;
|
|
98
|
+
setIsResizing(false);
|
|
99
|
+
document.body.classList.remove('pvt-is-resizing');
|
|
100
|
+
window.removeEventListener('pointermove', onPointerMove);
|
|
101
|
+
window.removeEventListener('pointerup', _onPointerUp);
|
|
102
|
+
};
|
|
103
|
+
window.addEventListener('pointermove', onPointerMove);
|
|
104
|
+
window.addEventListener('pointerup', _onPointerUp);
|
|
105
|
+
}, [minWidth, maxWidth, onWidthChange, widths]);
|
|
106
|
+
return {
|
|
107
|
+
widths: widths,
|
|
108
|
+
startResize: startResize,
|
|
109
|
+
isResizing: isResizing
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=useColumnResize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useColumnResize.js","names":["_react","require","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","_typeof","Symbol","toPrimitive","call","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","n","l","iterator","u","f","next","done","isArray","useColumnResize","_ref","undefined","_ref$initialWidths","initialWidths","_ref$minWidth","minWidth","_ref$maxWidth","maxWidth","_ref$onWidthChange","onWidthChange","_useState","useState","_useState2","widths","setWidths","dragRef","useRef","_useState3","_useState4","isResizing","setIsResizing","startResize","useCallback","colKey","preventDefault","stopPropagation","th","currentTarget","closest","startWidth","offsetWidth","current","startX","clientX","document","body","classList","add","onPointerMove","moveEvent","_dragRef$current","key","sw","delta","newWidth","Math","max","min","prev","onPointerUp","remove","window","removeEventListener","addEventListener"],"sources":["../../src/hooks/useColumnResize.js"],"sourcesContent":["import { useRef, useState, useCallback } from 'react';\n\n/**\n * useColumnResize — Hook para gestionar el redimensionado de columnas.\n *\n * @param {Object} options\n * @param {Object} options.initialWidths - Anchos iniciales { [colKey]: number }\n * @param {number} options.minWidth - Ancho mínimo en px (default: 50)\n * @param {number} options.maxWidth - Ancho máximo en px (default: sin límite)\n * @param {Function} options.onWidthChange - Callback cuando cambian los anchos\n *\n * @returns {{ widths: Object, startResize: Function, isResizing: boolean }}\n */\nexport function useColumnResize({\n initialWidths = {},\n minWidth = 50,\n maxWidth = null,\n onWidthChange = null,\n} = {}) {\n // widths: { [colKey]: number }\n const [widths, setWidths] = useState(initialWidths);\n\n // Ref para el estado de drag activo (evita closures obsoletas)\n const dragRef = useRef(null);\n const [isResizing, setIsResizing] = useState(false);\n\n /**\n * Iniciar resize para una columna específica.\n * @param {string} colKey - Identificador único de la columna\n * @param {PointerEvent} e\n */\n const startResize = useCallback((colKey, e) => {\n e.preventDefault();\n e.stopPropagation();\n\n const th = e.currentTarget.closest('th');\n const startWidth = th ? th.offsetWidth : (widths[colKey] || 100);\n\n dragRef.current = {\n colKey,\n startX: e.clientX,\n startWidth,\n };\n\n setIsResizing(true);\n document.body.classList.add('pvt-is-resizing');\n\n const onPointerMove = (moveEvent) => {\n if (!dragRef.current) return;\n const { colKey: key, startX, startWidth: sw } = dragRef.current;\n const delta = moveEvent.clientX - startX;\n let newWidth = sw + delta;\n\n // Aplicar restricciones\n newWidth = Math.max(minWidth, newWidth);\n if (maxWidth) newWidth = Math.min(maxWidth, newWidth);\n\n setWidths(prev => ({ ...prev, [key]: newWidth }));\n };\n\n const onPointerUp = () => {\n if (!dragRef.current) return;\n const { colKey: key } = dragRef.current;\n\n setWidths(prev => {\n const next = { ...prev };\n if (onWidthChange) {\n onWidthChange(next);\n }\n return next;\n });\n\n dragRef.current = null;\n setIsResizing(false);\n document.body.classList.remove('pvt-is-resizing');\n\n window.removeEventListener('pointermove', onPointerMove);\n window.removeEventListener('pointerup', onPointerUp);\n };\n\n window.addEventListener('pointermove', onPointerMove);\n window.addEventListener('pointerup', onPointerUp);\n }, [minWidth, maxWidth, onWidthChange, widths]);\n\n return { widths, startResize, isResizing };\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/hooks/usePivot.js
CHANGED
|
@@ -47,7 +47,12 @@ function usePivot(initialProps) {
|
|
|
47
47
|
return engineRef.current.subscribe(onStoreChange);
|
|
48
48
|
}, []), (0, _react.useCallback)(function () {
|
|
49
49
|
return engineRef.current.getSnapshot();
|
|
50
|
-
}, [])
|
|
50
|
+
}, []),
|
|
51
|
+
// getSnapshot
|
|
52
|
+
(0, _react.useCallback)(function () {
|
|
53
|
+
return engineRef.current.getSnapshot();
|
|
54
|
+
}, []) // getServerSnapshot
|
|
55
|
+
);
|
|
51
56
|
return {
|
|
52
57
|
props: snapshot.props,
|
|
53
58
|
state: snapshot.state,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePivot.js","names":["_react","require","_PivotEngine","_FilterModule","_PaginationModule","_SortModule","_typeof","o","Symbol","iterator","constructor","prototype","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","toPrimitive","call","TypeError","String","Number","usePivot","initialProps","engineRef","useRef","current","PivotEngine","modules","FilterModule","PaginationModule","SortModule","useEffect","sanitized","allKeys","_i","_allKeys","key","undefined","stateManager","updateConfig","_notifyStateChanged","data","rows","cols","rendererName","aggregatorName","page","pageSize","snapshot","useSyncExternalStore","useCallback","onStoreChange","subscribe","getSnapshot","props","state","actions","setProps","newProps","gridApi","updateProp","setRows","setCols","toggleFilter","attr","setValuesInFilter","values","setFilter","addValuesToFilter","removeValuesFromFilter","setUnusedOrder","order","columnApi","core"],"sources":["../../src/hooks/usePivot.js"],"sourcesContent":["import { useRef, useSyncExternalStore, useCallback, useEffect } from 'react';\nimport { PivotEngine } from '../core/PivotEngine';\nimport { FilterModule } from '../modules/FilterModule';\nimport { PaginationModule } from '../modules/PaginationModule';\nimport { SortModule } from '../modules/SortModule';\n\n/**\n * usePivot — Hook de backward compatibility.\n * Internamente delega al nuevo PivotEngine con módulos por defecto.\n * Mantiene la API original: { props, state, actions }\n */\nexport function usePivot(initialProps) {\n const engineRef = useRef(null);\n\n if (!engineRef.current) {\n engineRef.current = new PivotEngine({\n ...initialProps,\n modules: [FilterModule, PaginationModule, SortModule],\n });\n }\n\n // Sincronizar props externas clave\n useEffect(() => {\n const sanitized = {};\n const allKeys = Object.keys(initialProps);\n for (const key of allKeys) {\n if (initialProps[key] !== undefined) {\n sanitized[key] = initialProps[key];\n }\n }\n engineRef.current.stateManager.updateConfig(sanitized);\n engineRef.current._notifyStateChanged();\n }, [\n initialProps.data,\n initialProps.rows,\n initialProps.cols,\n initialProps.rendererName,\n initialProps.aggregatorName,\n initialProps.page,\n initialProps.pageSize,\n ]);\n\n // Suscribirse a cambios del engine\n const snapshot = useSyncExternalStore(\n useCallback((onStoreChange) => engineRef.current.subscribe(onStoreChange), []),\n useCallback(() => engineRef.current.getSnapshot(), [])\n );\n\n return {\n props: snapshot.props,\n state: snapshot.state,\n actions: {\n setProps: (newProps) => engineRef.current.gridApi.updateConfig(newProps),\n updateProp: (key, value) => {\n if (key === 'rows') {\n engineRef.current.gridApi.setRows(value);\n } else if (key === 'cols') {\n engineRef.current.gridApi.setCols(value);\n } else {\n engineRef.current.gridApi.updateConfig({ [key]: value });\n }\n },\n toggleFilter: (attr, value) => engineRef.current.gridApi.toggleFilter(attr, value),\n setValuesInFilter: (attr, values) => engineRef.current.gridApi.setFilter(attr, values),\n addValuesToFilter: (attr, values) => engineRef.current.gridApi.addValuesToFilter(attr, values),\n removeValuesFromFilter: (attr, values) => engineRef.current.gridApi.removeValuesFromFilter(attr, values),\n setUnusedOrder: (order) => engineRef.current.gridApi.setUnusedOrder(order),\n },\n // Nuevo: exponer gridApi y columnApi\n gridApi: engineRef.current.gridApi,\n columnApi: engineRef.current.columnApi,\n core: engineRef.current, // Backward compat\n };\n}\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"usePivot.js","names":["_react","require","_PivotEngine","_FilterModule","_PaginationModule","_SortModule","_typeof","o","Symbol","iterator","constructor","prototype","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","toPrimitive","call","TypeError","String","Number","usePivot","initialProps","engineRef","useRef","current","PivotEngine","modules","FilterModule","PaginationModule","SortModule","useEffect","sanitized","allKeys","_i","_allKeys","key","undefined","stateManager","updateConfig","_notifyStateChanged","data","rows","cols","rendererName","aggregatorName","page","pageSize","snapshot","useSyncExternalStore","useCallback","onStoreChange","subscribe","getSnapshot","props","state","actions","setProps","newProps","gridApi","updateProp","setRows","setCols","toggleFilter","attr","setValuesInFilter","values","setFilter","addValuesToFilter","removeValuesFromFilter","setUnusedOrder","order","columnApi","core"],"sources":["../../src/hooks/usePivot.js"],"sourcesContent":["import { useRef, useSyncExternalStore, useCallback, useEffect } from 'react';\nimport { PivotEngine } from '../core/PivotEngine';\nimport { FilterModule } from '../modules/FilterModule';\nimport { PaginationModule } from '../modules/PaginationModule';\nimport { SortModule } from '../modules/SortModule';\n\n/**\n * usePivot — Hook de backward compatibility.\n * Internamente delega al nuevo PivotEngine con módulos por defecto.\n * Mantiene la API original: { props, state, actions }\n */\nexport function usePivot(initialProps) {\n const engineRef = useRef(null);\n\n if (!engineRef.current) {\n engineRef.current = new PivotEngine({\n ...initialProps,\n modules: [FilterModule, PaginationModule, SortModule],\n });\n }\n\n // Sincronizar props externas clave\n useEffect(() => {\n const sanitized = {};\n const allKeys = Object.keys(initialProps);\n for (const key of allKeys) {\n if (initialProps[key] !== undefined) {\n sanitized[key] = initialProps[key];\n }\n }\n engineRef.current.stateManager.updateConfig(sanitized);\n engineRef.current._notifyStateChanged();\n }, [\n initialProps.data,\n initialProps.rows,\n initialProps.cols,\n initialProps.rendererName,\n initialProps.aggregatorName,\n initialProps.page,\n initialProps.pageSize,\n ]);\n\n // Suscribirse a cambios del engine\n const snapshot = useSyncExternalStore(\n useCallback((onStoreChange) => engineRef.current.subscribe(onStoreChange), []),\n useCallback(() => engineRef.current.getSnapshot(), []), // getSnapshot\n useCallback(() => engineRef.current.getSnapshot(), []) // getServerSnapshot\n );\n\n return {\n props: snapshot.props,\n state: snapshot.state,\n actions: {\n setProps: (newProps) => engineRef.current.gridApi.updateConfig(newProps),\n updateProp: (key, value) => {\n if (key === 'rows') {\n engineRef.current.gridApi.setRows(value);\n } else if (key === 'cols') {\n engineRef.current.gridApi.setCols(value);\n } else {\n engineRef.current.gridApi.updateConfig({ [key]: value });\n }\n },\n toggleFilter: (attr, value) => engineRef.current.gridApi.toggleFilter(attr, value),\n setValuesInFilter: (attr, values) => engineRef.current.gridApi.setFilter(attr, values),\n addValuesToFilter: (attr, values) => engineRef.current.gridApi.addValuesToFilter(attr, values),\n removeValuesFromFilter: (attr, values) => engineRef.current.gridApi.removeValuesFromFilter(attr, values),\n setUnusedOrder: (order) => engineRef.current.gridApi.setUnusedOrder(order),\n },\n // Nuevo: exponer gridApi y columnApi\n gridApi: engineRef.current.gridApi,\n columnApi: engineRef.current.columnApi,\n core: engineRef.current, // Backward compat\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.18",
|
|
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",
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
"./modules/*": "./dist/modules/*.js",
|
|
18
18
|
"./react/*": "./dist/react/*.js",
|
|
19
19
|
"./pivottable.css": "./pivottable.css",
|
|
20
|
-
"./grouping.css": "./grouping.css"
|
|
20
|
+
"./grouping.css": "./grouping.css",
|
|
21
|
+
"./package.json": "./package.json"
|
|
21
22
|
},
|
|
22
23
|
"files": [
|
|
23
24
|
"dist/",
|
|
@@ -86,8 +87,8 @@
|
|
|
86
87
|
"tailwind-merge": "^3.5.0"
|
|
87
88
|
},
|
|
88
89
|
"peerDependencies": {
|
|
89
|
-
"react": ">=
|
|
90
|
-
"react-dom": ">=
|
|
90
|
+
"react": ">=18.0.0",
|
|
91
|
+
"react-dom": ">=18.0.0"
|
|
91
92
|
},
|
|
92
93
|
"devDependencies": {
|
|
93
94
|
"@babel/cli": "^7.28.6",
|
package/pivottable.css
CHANGED
|
@@ -494,4 +494,60 @@ table.pvtTable tr.pvtEmptyRow .pvtRowNumber {
|
|
|
494
494
|
.pvt-size-lg table.pvtTable td {
|
|
495
495
|
--pvt-font-size: 14px !important;
|
|
496
496
|
--pvt-row-height: 42px !important;
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
/* ─── Column Resize ───────────────────────────────────── */
|
|
500
|
+
|
|
501
|
+
/* Las th de cabecera deben ser position: relative para anclar el handle */
|
|
502
|
+
table.pvtTable thead th {
|
|
503
|
+
position: relative;
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
/* El handle es una franja interactiva en el borde derecho del th */
|
|
507
|
+
.pvtResizeHandle {
|
|
508
|
+
position: absolute;
|
|
509
|
+
right: 0;
|
|
510
|
+
top: 0;
|
|
511
|
+
bottom: 0;
|
|
512
|
+
width: 8px;
|
|
513
|
+
/* Ampliado para que sea más fácil de clickear */
|
|
514
|
+
cursor: col-resize;
|
|
515
|
+
user-select: none;
|
|
516
|
+
z-index: 10;
|
|
517
|
+
display: flex;
|
|
518
|
+
align-items: center;
|
|
519
|
+
justify-content: center;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
/* El 'cosito' que se pone entre las lineas */
|
|
523
|
+
.pvtResizeHandle::after {
|
|
524
|
+
content: "";
|
|
525
|
+
width: 2px;
|
|
526
|
+
height: 50%;
|
|
527
|
+
background-color: var(--pvt-border-color);
|
|
528
|
+
border-radius: 2px;
|
|
529
|
+
transition: all 0.2s ease;
|
|
530
|
+
opacity: 0.6;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
/* Muestra un indicador visual interactivo al hover */
|
|
534
|
+
.pvtResizeHandle:hover::after,
|
|
535
|
+
.pvtResizeHandle:active::after {
|
|
536
|
+
background-color: #119dff;
|
|
537
|
+
opacity: 1;
|
|
538
|
+
height: 100%;
|
|
539
|
+
width: 3px;
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
/* Durante el resize activo (clase en la tabla entera) */
|
|
543
|
+
table.pvtTable.pvtResizable {
|
|
544
|
+
width: max-content;
|
|
545
|
+
min-width: 100%;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
/* Forzar cursor de resize mientras arrastras */
|
|
549
|
+
body.pvt-is-resizing,
|
|
550
|
+
body.pvt-is-resizing * {
|
|
551
|
+
cursor: col-resize !important;
|
|
552
|
+
user-select: none !important;
|
|
497
553
|
}
|