@highcharts/grid-pro 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -0
- package/css/grid-pro.css +1756 -0
- package/es-modules/Accessibility/A11yI18n.d.ts +95 -0
- package/es-modules/Accessibility/A11yI18n.js +290 -0
- package/es-modules/Accessibility/Accessibility.d.ts +116 -0
- package/es-modules/Accessibility/Accessibility.js +402 -0
- package/es-modules/Accessibility/AccessibilityComponent.d.ts +97 -0
- package/es-modules/Accessibility/AccessibilityComponent.js +147 -0
- package/es-modules/Accessibility/Components/AnnotationsA11y.d.ts +43 -0
- package/es-modules/Accessibility/Components/AnnotationsA11y.js +160 -0
- package/es-modules/Accessibility/Components/ContainerComponent.d.ts +48 -0
- package/es-modules/Accessibility/Components/ContainerComponent.js +142 -0
- package/es-modules/Accessibility/Components/InfoRegionsComponent.d.ts +144 -0
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +555 -0
- package/es-modules/Accessibility/Components/LegendComponent.d.ts +124 -0
- package/es-modules/Accessibility/Components/LegendComponent.js +474 -0
- package/es-modules/Accessibility/Components/MenuComponent.d.ts +93 -0
- package/es-modules/Accessibility/Components/MenuComponent.js +430 -0
- package/es-modules/Accessibility/Components/NavigatorComponent.d.ts +57 -0
- package/es-modules/Accessibility/Components/NavigatorComponent.js +235 -0
- package/es-modules/Accessibility/Components/RangeSelectorComponent.d.ts +126 -0
- package/es-modules/Accessibility/Components/RangeSelectorComponent.js +473 -0
- package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.d.ts +18 -0
- package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +234 -0
- package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.d.ts +87 -0
- package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +309 -0
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.d.ts +53 -0
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +130 -0
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.d.ts +28 -0
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +415 -0
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.d.ts +114 -0
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +721 -0
- package/es-modules/Accessibility/Components/ZoomComponent.d.ts +96 -0
- package/es-modules/Accessibility/Components/ZoomComponent.js +314 -0
- package/es-modules/Accessibility/FocusBorder.d.ts +40 -0
- package/es-modules/Accessibility/FocusBorder.js +301 -0
- package/es-modules/Accessibility/HighContrastMode.d.ts +35 -0
- package/es-modules/Accessibility/HighContrastMode.js +100 -0
- package/es-modules/Accessibility/HighContrastTheme.d.ts +11 -0
- package/es-modules/Accessibility/HighContrastTheme.js +212 -0
- package/es-modules/Accessibility/KeyboardNavigation.d.ts +133 -0
- package/es-modules/Accessibility/KeyboardNavigation.js +450 -0
- package/es-modules/Accessibility/KeyboardNavigationHandler.d.ts +48 -0
- package/es-modules/Accessibility/KeyboardNavigationHandler.js +126 -0
- package/es-modules/Accessibility/Options/A11yDefaults.d.ts +68 -0
- package/es-modules/Accessibility/Options/A11yDefaults.js +971 -0
- package/es-modules/Accessibility/Options/DeprecatedOptions.d.ts +22 -0
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +265 -0
- package/es-modules/Accessibility/Options/LangDefaults.d.ts +4 -0
- package/es-modules/Accessibility/Options/LangDefaults.js +440 -0
- package/es-modules/Accessibility/ProxyElement.d.ts +78 -0
- package/es-modules/Accessibility/ProxyElement.js +223 -0
- package/es-modules/Accessibility/ProxyProvider.d.ts +90 -0
- package/es-modules/Accessibility/ProxyProvider.js +315 -0
- package/es-modules/Accessibility/Utils/Announcer.d.ts +26 -0
- package/es-modules/Accessibility/Utils/Announcer.js +90 -0
- package/es-modules/Accessibility/Utils/ChartUtilities.d.ts +90 -0
- package/es-modules/Accessibility/Utils/ChartUtilities.js +298 -0
- package/es-modules/Accessibility/Utils/DOMElementProvider.d.ts +20 -0
- package/es-modules/Accessibility/Utils/DOMElementProvider.js +69 -0
- package/es-modules/Accessibility/Utils/EventProvider.d.ts +26 -0
- package/es-modules/Accessibility/Utils/EventProvider.js +65 -0
- package/es-modules/Accessibility/Utils/HTMLUtilities.d.ts +108 -0
- package/es-modules/Accessibility/Utils/HTMLUtilities.js +319 -0
- package/es-modules/Core/Animation/AnimationUtilities.d.ts +107 -0
- package/es-modules/Core/Animation/AnimationUtilities.js +200 -0
- package/es-modules/Core/Animation/Fx.d.ts +130 -0
- package/es-modules/Core/Animation/Fx.js +388 -0
- package/es-modules/Core/Chart/Chart.d.ts +1009 -0
- package/es-modules/Core/Chart/Chart.js +3008 -0
- package/es-modules/Core/Chart/Chart3D.d.ts +276 -0
- package/es-modules/Core/Chart/Chart3D.js +1686 -0
- package/es-modules/Core/Chart/ChartDefaults.d.ts +8 -0
- package/es-modules/Core/Chart/ChartDefaults.js +1304 -0
- package/es-modules/Core/Chart/ChartNavigationComposition.d.ts +55 -0
- package/es-modules/Core/Chart/ChartNavigationComposition.js +90 -0
- package/es-modules/Core/Chart/GanttChart.d.ts +74 -0
- package/es-modules/Core/Chart/GanttChart.js +189 -0
- package/es-modules/Core/Chart/MapChart.d.ts +132 -0
- package/es-modules/Core/Chart/MapChart.js +232 -0
- package/es-modules/Core/Chart/StockChart.d.ts +117 -0
- package/es-modules/Core/Chart/StockChart.js +641 -0
- package/es-modules/Core/Color/Color.d.ts +112 -0
- package/es-modules/Core/Color/Color.js +418 -0
- package/es-modules/Core/Color/Palettes.d.ts +84 -0
- package/es-modules/Core/Color/Palettes.js +23 -0
- package/es-modules/Core/Defaults.d.ts +42 -0
- package/es-modules/Core/Defaults.js +2977 -0
- package/es-modules/Core/Foundation.d.ts +19 -0
- package/es-modules/Core/Foundation.js +63 -0
- package/es-modules/Core/Geometry/CircleUtilities.d.ts +189 -0
- package/es-modules/Core/Geometry/CircleUtilities.js +388 -0
- package/es-modules/Core/Geometry/GeometryUtilities.d.ts +48 -0
- package/es-modules/Core/Geometry/GeometryUtilities.js +105 -0
- package/es-modules/Core/Geometry/PolygonClip.d.ts +19 -0
- package/es-modules/Core/Geometry/PolygonClip.js +96 -0
- package/es-modules/Core/Globals.d.ts +110 -0
- package/es-modules/Core/Globals.js +127 -0
- package/es-modules/Core/HttpUtilities.d.ts +61 -0
- package/es-modules/Core/HttpUtilities.js +214 -0
- package/es-modules/Core/MSPointer.d.ts +74 -0
- package/es-modules/Core/MSPointer.js +218 -0
- package/es-modules/Core/Math3D.d.ts +117 -0
- package/es-modules/Core/Math3D.js +250 -0
- package/es-modules/Core/Pointer.d.ts +590 -0
- package/es-modules/Core/Pointer.js +1631 -0
- package/es-modules/Core/Renderer/HTML/AST.d.ts +163 -0
- package/es-modules/Core/Renderer/HTML/AST.js +562 -0
- package/es-modules/Core/Renderer/HTML/HTMLElement.d.ts +76 -0
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +471 -0
- package/es-modules/Core/Renderer/RendererRegistry.d.ts +29 -0
- package/es-modules/Core/Renderer/RendererRegistry.js +76 -0
- package/es-modules/Core/Renderer/RendererUtilities.d.ts +26 -0
- package/es-modules/Core/Renderer/RendererUtilities.js +172 -0
- package/es-modules/Core/Responsive.d.ts +55 -0
- package/es-modules/Core/Responsive.js +260 -0
- package/es-modules/Core/Templating.d.ts +125 -0
- package/es-modules/Core/Templating.js +428 -0
- package/es-modules/Core/Time.d.ts +69 -0
- package/es-modules/Core/Time.js +172 -0
- package/es-modules/Core/Tooltip.d.ts +297 -0
- package/es-modules/Core/Tooltip.js +1377 -0
- package/es-modules/Core/Utilities.d.ts +770 -0
- package/es-modules/Core/Utilities.js +1989 -0
- package/es-modules/Data/ColumnUtils.d.ts +87 -0
- package/es-modules/Data/ColumnUtils.js +140 -0
- package/es-modules/Data/Connectors/CSVConnector.d.ts +63 -0
- package/es-modules/Data/Connectors/CSVConnector.js +149 -0
- package/es-modules/Data/Connectors/CSVConnectorOptions.d.ts +149 -0
- package/es-modules/Data/Connectors/DataConnector.d.ts +204 -0
- package/es-modules/Data/Connectors/DataConnector.js +345 -0
- package/es-modules/Data/Connectors/DataConnectorOptions.d.ts +87 -0
- package/es-modules/Data/Connectors/DataConnectorType.d.ts +45 -0
- package/es-modules/Data/Connectors/GoogleSheetsConnector.d.ts +65 -0
- package/es-modules/Data/Connectors/GoogleSheetsConnector.js +226 -0
- package/es-modules/Data/Connectors/GoogleSheetsConnectorOptions.d.ts +167 -0
- package/es-modules/Data/Connectors/HTMLTableConnector.d.ts +77 -0
- package/es-modules/Data/Connectors/HTMLTableConnector.js +119 -0
- package/es-modules/Data/Connectors/HTMLTableConnectorOptions.d.ts +49 -0
- package/es-modules/Data/Connectors/JSONConnector.d.ts +64 -0
- package/es-modules/Data/Connectors/JSONConnector.js +156 -0
- package/es-modules/Data/Connectors/JSONConnectorOptions.d.ts +185 -0
- package/es-modules/Data/Converters/CSVConverter.d.ts +64 -0
- package/es-modules/Data/Converters/CSVConverter.js +374 -0
- package/es-modules/Data/Converters/CSVConverterOptions.d.ts +53 -0
- package/es-modules/Data/Converters/DataConverter.d.ts +168 -0
- package/es-modules/Data/Converters/DataConverter.js +387 -0
- package/es-modules/Data/Converters/DataConverterType.d.ts +40 -0
- package/es-modules/Data/Converters/DataConverterUtils.d.ts +82 -0
- package/es-modules/Data/Converters/DataConverterUtils.js +216 -0
- package/es-modules/Data/Converters/GoogleSheetsConverter.d.ts +46 -0
- package/es-modules/Data/Converters/GoogleSheetsConverter.js +135 -0
- package/es-modules/Data/Converters/GoogleSheetsConverterOptions.d.ts +52 -0
- package/es-modules/Data/Converters/HTMLTableConverter.d.ts +72 -0
- package/es-modules/Data/Converters/HTMLTableConverter.js +362 -0
- package/es-modules/Data/Converters/HTMLTableConverterOptions.d.ts +51 -0
- package/es-modules/Data/Converters/JSONConverter.d.ts +99 -0
- package/es-modules/Data/Converters/JSONConverter.js +239 -0
- package/es-modules/Data/Converters/JSONConverterOptions.d.ts +52 -0
- package/es-modules/Data/DataCursor.d.ts +176 -0
- package/es-modules/Data/DataCursor.js +379 -0
- package/es-modules/Data/DataEvent.d.ts +81 -0
- package/es-modules/Data/DataEvent.js +14 -0
- package/es-modules/Data/DataPool.d.ts +130 -0
- package/es-modules/Data/DataPool.js +257 -0
- package/es-modules/Data/DataPoolOptions.d.ts +66 -0
- package/es-modules/Data/DataTable.d.ts +563 -0
- package/es-modules/Data/DataTable.js +930 -0
- package/es-modules/Data/DataTableCore.d.ts +165 -0
- package/es-modules/Data/DataTableCore.js +316 -0
- package/es-modules/Data/DataTableOptions.d.ts +25 -0
- package/es-modules/Data/DataTableOptions.js +15 -0
- package/es-modules/Data/Formula/Formula.d.ts +21 -0
- package/es-modules/Data/Formula/Formula.js +54 -0
- package/es-modules/Data/Formula/FormulaParser.d.ts +31 -0
- package/es-modules/Data/Formula/FormulaParser.js +488 -0
- package/es-modules/Data/Formula/FormulaProcessor.d.ts +155 -0
- package/es-modules/Data/Formula/FormulaProcessor.js +529 -0
- package/es-modules/Data/Formula/FormulaTypes.d.ts +138 -0
- package/es-modules/Data/Formula/FormulaTypes.js +135 -0
- package/es-modules/Data/Formula/Functions/ABS.d.ts +19 -0
- package/es-modules/Data/Formula/Functions/ABS.js +67 -0
- package/es-modules/Data/Formula/Functions/AND.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/AND.js +59 -0
- package/es-modules/Data/Formula/Functions/AVERAGE.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/AVERAGE.js +74 -0
- package/es-modules/Data/Formula/Functions/AVERAGEA.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/AVERAGEA.js +90 -0
- package/es-modules/Data/Formula/Functions/COUNT.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/COUNT.js +65 -0
- package/es-modules/Data/Formula/Functions/COUNTA.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/COUNTA.js +71 -0
- package/es-modules/Data/Formula/Functions/IF.d.ts +21 -0
- package/es-modules/Data/Formula/Functions/IF.js +54 -0
- package/es-modules/Data/Formula/Functions/ISNA.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/ISNA.js +52 -0
- package/es-modules/Data/Formula/Functions/MAX.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/MAX.js +69 -0
- package/es-modules/Data/Formula/Functions/MEDIAN.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/MEDIAN.js +78 -0
- package/es-modules/Data/Formula/Functions/MIN.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/MIN.js +69 -0
- package/es-modules/Data/Formula/Functions/MOD.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/MOD.js +63 -0
- package/es-modules/Data/Formula/Functions/MODE.d.ts +41 -0
- package/es-modules/Data/Formula/Functions/MODE.js +149 -0
- package/es-modules/Data/Formula/Functions/NOT.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/NOT.js +60 -0
- package/es-modules/Data/Formula/Functions/OR.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/OR.js +62 -0
- package/es-modules/Data/Formula/Functions/PRODUCT.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/PRODUCT.js +68 -0
- package/es-modules/Data/Formula/Functions/SUM.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/SUM.js +65 -0
- package/es-modules/Data/Formula/Functions/XOR.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/XOR.js +81 -0
- package/es-modules/Data/Modifiers/ChainModifier.d.ts +128 -0
- package/es-modules/Data/Modifiers/ChainModifier.js +231 -0
- package/es-modules/Data/Modifiers/ChainModifierOptions.d.ts +20 -0
- package/es-modules/Data/Modifiers/ChainModifierOptions.js +14 -0
- package/es-modules/Data/Modifiers/DataModifier.d.ts +117 -0
- package/es-modules/Data/Modifiers/DataModifier.js +202 -0
- package/es-modules/Data/Modifiers/DataModifierEvent.d.ts +28 -0
- package/es-modules/Data/Modifiers/DataModifierEvent.js +15 -0
- package/es-modules/Data/Modifiers/DataModifierOptions.d.ts +11 -0
- package/es-modules/Data/Modifiers/DataModifierOptions.js +15 -0
- package/es-modules/Data/Modifiers/DataModifierType.d.ts +44 -0
- package/es-modules/Data/Modifiers/FilterModifier.d.ts +53 -0
- package/es-modules/Data/Modifiers/FilterModifier.js +172 -0
- package/es-modules/Data/Modifiers/FilterModifierOptions.d.ts +110 -0
- package/es-modules/Data/Modifiers/FilterModifierOptions.js +14 -0
- package/es-modules/Data/Modifiers/InvertModifier.d.ts +48 -0
- package/es-modules/Data/Modifiers/InvertModifier.js +116 -0
- package/es-modules/Data/Modifiers/InvertModifierOptions.d.ts +11 -0
- package/es-modules/Data/Modifiers/InvertModifierOptions.js +15 -0
- package/es-modules/Data/Modifiers/MathModifier.d.ts +68 -0
- package/es-modules/Data/Modifiers/MathModifier.js +165 -0
- package/es-modules/Data/Modifiers/MathModifierOptions.d.ts +50 -0
- package/es-modules/Data/Modifiers/MathModifierOptions.js +14 -0
- package/es-modules/Data/Modifiers/RangeModifier.d.ts +46 -0
- package/es-modules/Data/Modifiers/RangeModifier.js +96 -0
- package/es-modules/Data/Modifiers/RangeModifierOptions.d.ts +22 -0
- package/es-modules/Data/Modifiers/RangeModifierOptions.js +15 -0
- package/es-modules/Data/Modifiers/SortModifier.d.ts +54 -0
- package/es-modules/Data/Modifiers/SortModifier.js +144 -0
- package/es-modules/Data/Modifiers/SortModifierOptions.d.ts +44 -0
- package/es-modules/Data/Modifiers/SortModifierOptions.js +14 -0
- package/es-modules/Grid/Core/Accessibility/A11yOptions.d.ts +148 -0
- package/es-modules/Grid/Core/Accessibility/A11yOptions.js +17 -0
- package/es-modules/Grid/Core/Accessibility/Accessibility.d.ts +115 -0
- package/es-modules/Grid/Core/Accessibility/Accessibility.js +231 -0
- package/es-modules/Grid/Core/Credits.d.ts +57 -0
- package/es-modules/Grid/Core/Credits.js +125 -0
- package/es-modules/Grid/Core/Defaults.d.ts +20 -0
- package/es-modules/Grid/Core/Defaults.js +148 -0
- package/es-modules/Grid/Core/Globals.d.ts +103 -0
- package/es-modules/Grid/Core/Globals.js +134 -0
- package/es-modules/Grid/Core/Grid.d.ts +295 -0
- package/es-modules/Grid/Core/Grid.js +730 -0
- package/es-modules/Grid/Core/GridUtils.d.ts +110 -0
- package/es-modules/Grid/Core/GridUtils.js +191 -0
- package/es-modules/Grid/Core/Options.d.ts +599 -0
- package/es-modules/Grid/Core/Options.js +16 -0
- package/es-modules/Grid/Core/Pagination/Icons.d.ts +7 -0
- package/es-modules/Grid/Core/Pagination/Icons.js +7 -0
- package/es-modules/Grid/Core/Pagination/Pagination.d.ts +278 -0
- package/es-modules/Grid/Core/Pagination/Pagination.js +842 -0
- package/es-modules/Grid/Core/Pagination/PaginationOptions.d.ts +228 -0
- package/es-modules/Grid/Core/Querying/FilteringController.d.ts +66 -0
- package/es-modules/Grid/Core/Querying/FilteringController.js +256 -0
- package/es-modules/Grid/Core/Querying/PaginationController.d.ts +50 -0
- package/es-modules/Grid/Core/Querying/PaginationController.js +101 -0
- package/es-modules/Grid/Core/Querying/QueryingController.d.ts +58 -0
- package/es-modules/Grid/Core/Querying/QueryingController.js +127 -0
- package/es-modules/Grid/Core/Querying/SortingController.d.ts +67 -0
- package/es-modules/Grid/Core/Querying/SortingController.js +136 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/ColumnFiltering.d.ts +114 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/ColumnFiltering.js +351 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterCell.d.ts +14 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterCell.js +86 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterRow.d.ts +19 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterRow.js +80 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilteringTypes.d.ts +52 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilteringTypes.js +81 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnSorting.d.ts +56 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnSorting.js +170 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnsResizer.d.ts +55 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnsResizer.js +182 -0
- package/es-modules/Grid/Core/Table/Actions/RowsVirtualizer.d.ts +87 -0
- package/es-modules/Grid/Core/Table/Actions/RowsVirtualizer.js +346 -0
- package/es-modules/Grid/Core/Table/Body/TableCell.d.ts +88 -0
- package/es-modules/Grid/Core/Table/Body/TableCell.js +231 -0
- package/es-modules/Grid/Core/Table/Body/TableRow.d.ts +79 -0
- package/es-modules/Grid/Core/Table/Body/TableRow.js +177 -0
- package/es-modules/Grid/Core/Table/Cell.d.ts +92 -0
- package/es-modules/Grid/Core/Table/Cell.js +223 -0
- package/es-modules/Grid/Core/Table/CellContent/CellContent.d.ts +30 -0
- package/es-modules/Grid/Core/Table/CellContent/CellContent.js +40 -0
- package/es-modules/Grid/Core/Table/CellContent/TextContent.d.ts +19 -0
- package/es-modules/Grid/Core/Table/CellContent/TextContent.js +98 -0
- package/es-modules/Grid/Core/Table/Column.d.ts +136 -0
- package/es-modules/Grid/Core/Table/Column.js +230 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/AdjacentResizingMode.d.ts +7 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/AdjacentResizingMode.js +62 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/ColumnResizing.d.ts +32 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/ColumnResizing.js +68 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/DistributedResizingMode.d.ts +7 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/DistributedResizingMode.js +53 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/IndependentResizingMode.d.ts +7 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/IndependentResizingMode.js +63 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/ResizingMode.d.ts +92 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/ResizingMode.js +194 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ColumnToolbar.d.ts +68 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ColumnToolbar.js +187 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/FilterPopup.d.ts +29 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/FilterPopup.js +77 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/FilterMenuButton.d.ts +13 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/FilterMenuButton.js +79 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/SortMenuButton.d.ts +12 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/SortMenuButton.js +71 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuPopup.d.ts +12 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuPopup.js +66 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/StateHelpers.d.ts +25 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/StateHelpers.js +65 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/FilterToolbarButton.d.ts +12 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/FilterToolbarButton.js +81 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/MenuToolbarButton.d.ts +12 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/MenuToolbarButton.js +80 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.d.ts +11 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.js +81 -0
- package/es-modules/Grid/Core/Table/Header/HeaderCell.d.ts +70 -0
- package/es-modules/Grid/Core/Table/Header/HeaderCell.js +225 -0
- package/es-modules/Grid/Core/Table/Header/HeaderRow.d.ts +53 -0
- package/es-modules/Grid/Core/Table/Header/HeaderRow.js +182 -0
- package/es-modules/Grid/Core/Table/Header/TableHeader.d.ts +65 -0
- package/es-modules/Grid/Core/Table/Header/TableHeader.js +159 -0
- package/es-modules/Grid/Core/Table/Row.d.ts +76 -0
- package/es-modules/Grid/Core/Table/Row.js +131 -0
- package/es-modules/Grid/Core/Table/Table.d.ts +181 -0
- package/es-modules/Grid/Core/Table/Table.js +399 -0
- package/es-modules/Grid/Core/UI/Button.d.ts +31 -0
- package/es-modules/Grid/Core/UI/Button.js +16 -0
- package/es-modules/Grid/Core/UI/ContextMenu.d.ts +38 -0
- package/es-modules/Grid/Core/UI/ContextMenu.js +132 -0
- package/es-modules/Grid/Core/UI/ContextMenuButton.d.ts +126 -0
- package/es-modules/Grid/Core/UI/ContextMenuButton.js +183 -0
- package/es-modules/Grid/Core/UI/Popup.d.ts +149 -0
- package/es-modules/Grid/Core/UI/Popup.js +271 -0
- package/es-modules/Grid/Core/UI/SvgIcons.d.ts +53 -0
- package/es-modules/Grid/Core/UI/SvgIcons.js +158 -0
- package/es-modules/Grid/Core/UI/Toolbar.d.ts +16 -0
- package/es-modules/Grid/Core/UI/Toolbar.js +16 -0
- package/es-modules/Grid/Core/UI/ToolbarButton.d.ts +135 -0
- package/es-modules/Grid/Core/UI/ToolbarButton.js +191 -0
- package/es-modules/Grid/Pro/CellEditing/CellEditMode.d.ts +112 -0
- package/es-modules/Grid/Pro/CellEditing/CellEditing.d.ts +80 -0
- package/es-modules/Grid/Pro/CellEditing/CellEditing.js +211 -0
- package/es-modules/Grid/Pro/CellEditing/CellEditingComposition.d.ts +123 -0
- package/es-modules/Grid/Pro/CellEditing/CellEditingComposition.js +198 -0
- package/es-modules/Grid/Pro/CellRendering/CellContentPro.d.ts +23 -0
- package/es-modules/Grid/Pro/CellRendering/CellContentPro.js +45 -0
- package/es-modules/Grid/Pro/CellRendering/CellRenderer.d.ts +50 -0
- package/es-modules/Grid/Pro/CellRendering/CellRenderer.js +41 -0
- package/es-modules/Grid/Pro/CellRendering/CellRendererRegistry.d.ts +18 -0
- package/es-modules/Grid/Pro/CellRendering/CellRendererRegistry.js +58 -0
- package/es-modules/Grid/Pro/CellRendering/CellRendererType.d.ts +48 -0
- package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.d.ts +18 -0
- package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.js +79 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/CheckboxContent.d.ts +30 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/CheckboxContent.js +122 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContent.d.ts +12 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContent.js +39 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContentBase.d.ts +66 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContentBase.js +145 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateTimeInputContent.d.ts +12 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateTimeInputContent.js +38 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/NumberInputContent.d.ts +58 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/NumberInputContent.js +158 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/SelectContent.d.ts +58 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/SelectContent.js +173 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/SparklineContent.d.ts +28 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/SparklineContent.js +157 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/TextInputContent.d.ts +58 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/TextInputContent.js +168 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/TimeInputContent.d.ts +13 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/TimeInputContent.js +41 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/CheckboxRenderer.d.ts +50 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/CheckboxRenderer.js +65 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRenderer.d.ts +37 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRenderer.js +65 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRendererBase.d.ts +26 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRendererBase.js +16 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/DateTimeInputRenderer.d.ts +37 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/DateTimeInputRenderer.js +64 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/NumberInputRenderer.d.ts +52 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/NumberInputRenderer.js +64 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/SelectRenderer.d.ts +74 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/SelectRenderer.js +66 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.d.ts +45 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.js +89 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/TextInputRenderer.d.ts +54 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/TextInputRenderer.js +65 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/TextRenderer.d.ts +43 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/TextRenderer.js +74 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/TimeInputRenderer.d.ts +37 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/TimeInputRenderer.js +64 -0
- package/es-modules/Grid/Pro/ColumnTypes/ColumnDataType.d.ts +29 -0
- package/es-modules/Grid/Pro/ColumnTypes/Validator.d.ts +118 -0
- package/es-modules/Grid/Pro/ColumnTypes/Validator.js +270 -0
- package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.d.ts +32 -0
- package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.js +63 -0
- package/es-modules/Grid/Pro/Credits/CreditsPro.d.ts +35 -0
- package/es-modules/Grid/Pro/Credits/CreditsPro.js +112 -0
- package/es-modules/Grid/Pro/Credits/CreditsProComposition.d.ts +28 -0
- package/es-modules/Grid/Pro/Credits/CreditsProComposition.js +61 -0
- package/es-modules/Grid/Pro/Export/Exporting.d.ts +68 -0
- package/es-modules/Grid/Pro/Export/Exporting.js +202 -0
- package/es-modules/Grid/Pro/Export/ExportingComposition.d.ts +68 -0
- package/es-modules/Grid/Pro/Export/ExportingComposition.js +55 -0
- package/es-modules/Grid/Pro/GridEvents.d.ts +119 -0
- package/es-modules/Grid/Pro/GridEvents.js +107 -0
- package/es-modules/Grid/Pro/Pagination/PaginationComposition.d.ts +75 -0
- package/es-modules/Grid/Pro/Pagination/PaginationComposition.js +76 -0
- package/es-modules/Grid/Pro/highcharts.d.ts +7 -0
- package/es-modules/Grid/index.d.ts +5 -0
- package/es-modules/Grid/index.js +19 -0
- package/es-modules/Shared/BaseForm.d.ts +49 -0
- package/es-modules/Shared/BaseForm.js +126 -0
- package/es-modules/Shared/DownloadURL.d.ts +85 -0
- package/es-modules/Shared/DownloadURL.js +198 -0
- package/es-modules/Shared/LangOptionsCore.d.ts +27 -0
- package/es-modules/Shared/TimeBase.d.ts +353 -0
- package/es-modules/Shared/TimeBase.js +830 -0
- package/es-modules/Shared/Types.d.ts +48 -0
- package/es-modules/masters/grid-pro.src.d.ts +99 -0
- package/es-modules/masters/grid-pro.src.js +129 -0
- package/grid-pro.d.ts +50 -0
- package/grid-pro.js +12 -0
- package/grid-pro.js.map +1 -0
- package/grid-pro.src.d.ts +50 -0
- package/grid-pro.src.js +26623 -0
- package/package.json +21 -0
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
/* *
|
|
2
|
+
*
|
|
3
|
+
* Grid Rows Renderer class.
|
|
4
|
+
*
|
|
5
|
+
* (c) 2020-2025 Highsoft AS
|
|
6
|
+
*
|
|
7
|
+
* License: www.highcharts.com/license
|
|
8
|
+
*
|
|
9
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
10
|
+
*
|
|
11
|
+
* Authors:
|
|
12
|
+
* - Dawid Dragula
|
|
13
|
+
*
|
|
14
|
+
* */
|
|
15
|
+
'use strict';
|
|
16
|
+
import TableRow from '../Body/TableRow.js';
|
|
17
|
+
import Globals from '../../Globals.js';
|
|
18
|
+
/* *
|
|
19
|
+
*
|
|
20
|
+
* Class
|
|
21
|
+
*
|
|
22
|
+
* */
|
|
23
|
+
/**
|
|
24
|
+
* Represents a virtualized rows renderer for the data grid.
|
|
25
|
+
*/
|
|
26
|
+
class RowsVirtualizer {
|
|
27
|
+
/* *
|
|
28
|
+
*
|
|
29
|
+
* Constructor
|
|
30
|
+
*
|
|
31
|
+
* */
|
|
32
|
+
/**
|
|
33
|
+
* Constructs an instance of the rows virtualizer.
|
|
34
|
+
*
|
|
35
|
+
* @param viewport
|
|
36
|
+
* The viewport of the data grid to render rows in.
|
|
37
|
+
*/
|
|
38
|
+
constructor(viewport) {
|
|
39
|
+
/**
|
|
40
|
+
* The index of the first visible row.
|
|
41
|
+
*/
|
|
42
|
+
this.rowCursor = 0;
|
|
43
|
+
/**
|
|
44
|
+
* Flag indicating if the scrolling handler should be prevented to avoid
|
|
45
|
+
* flickering loops when scrolling to the last row.
|
|
46
|
+
*/
|
|
47
|
+
this.preventScroll = false;
|
|
48
|
+
this.rowSettings =
|
|
49
|
+
viewport.grid.options?.rendering?.rows;
|
|
50
|
+
this.viewport = viewport;
|
|
51
|
+
this.strictRowHeights = this.rowSettings.strictHeights;
|
|
52
|
+
this.buffer = Math.max(this.rowSettings.bufferSize, 0);
|
|
53
|
+
this.defaultRowHeight = this.getDefaultRowHeight();
|
|
54
|
+
if (this.strictRowHeights) {
|
|
55
|
+
viewport.tbodyElement.classList.add(Globals.getClassName('rowsContentNowrap'));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/* *
|
|
59
|
+
*
|
|
60
|
+
* Functions
|
|
61
|
+
*
|
|
62
|
+
* */
|
|
63
|
+
/**
|
|
64
|
+
* Renders the rows in the viewport for the first time.
|
|
65
|
+
*/
|
|
66
|
+
initialRender() {
|
|
67
|
+
// Initial reflow to set the viewport height
|
|
68
|
+
if (this.viewport.virtualRows) {
|
|
69
|
+
this.viewport.reflow();
|
|
70
|
+
}
|
|
71
|
+
// Load & render rows
|
|
72
|
+
this.renderRows(this.rowCursor);
|
|
73
|
+
this.adjustRowHeights();
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Renders the rows in the viewport. It is called when the rows need to be
|
|
77
|
+
* re-rendered, e.g., after a sort or filter operation.
|
|
78
|
+
*/
|
|
79
|
+
rerender() {
|
|
80
|
+
const tbody = this.viewport.tbodyElement;
|
|
81
|
+
let rows = this.viewport.rows;
|
|
82
|
+
const oldScrollLeft = tbody.scrollLeft;
|
|
83
|
+
let oldScrollTop;
|
|
84
|
+
if (rows.length) {
|
|
85
|
+
oldScrollTop = tbody.scrollTop;
|
|
86
|
+
for (let i = 0, iEnd = rows.length; i < iEnd; ++i) {
|
|
87
|
+
rows[i].destroy();
|
|
88
|
+
}
|
|
89
|
+
rows.length = 0;
|
|
90
|
+
}
|
|
91
|
+
this.renderRows(this.rowCursor);
|
|
92
|
+
if (this.viewport.virtualRows) {
|
|
93
|
+
if (oldScrollTop !== void 0) {
|
|
94
|
+
tbody.scrollTop = oldScrollTop;
|
|
95
|
+
}
|
|
96
|
+
this.scroll();
|
|
97
|
+
}
|
|
98
|
+
rows = this.viewport.rows;
|
|
99
|
+
// Reflow the rendered row cells widths (check redundancy)
|
|
100
|
+
for (let i = 0, iEnd = rows.length; i < iEnd; ++i) {
|
|
101
|
+
rows[i].reflow();
|
|
102
|
+
}
|
|
103
|
+
tbody.scrollLeft = oldScrollLeft;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Method called on the viewport scroll event, only when the virtualization
|
|
107
|
+
* is enabled.
|
|
108
|
+
*/
|
|
109
|
+
scroll() {
|
|
110
|
+
const target = this.viewport.tbodyElement;
|
|
111
|
+
const { defaultRowHeight: rowHeight } = this;
|
|
112
|
+
const lastScrollTop = target.scrollTop;
|
|
113
|
+
if (this.preventScroll) {
|
|
114
|
+
if (lastScrollTop <= target.scrollTop) {
|
|
115
|
+
this.preventScroll = false;
|
|
116
|
+
}
|
|
117
|
+
this.adjustBottomRowHeights();
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
// Do vertical virtual scrolling
|
|
121
|
+
const rowCursor = Math.floor(target.scrollTop / rowHeight);
|
|
122
|
+
if (this.rowCursor !== rowCursor) {
|
|
123
|
+
this.renderRows(rowCursor);
|
|
124
|
+
}
|
|
125
|
+
this.rowCursor = rowCursor;
|
|
126
|
+
this.adjustRowHeights();
|
|
127
|
+
if (!this.strictRowHeights &&
|
|
128
|
+
lastScrollTop > target.scrollTop &&
|
|
129
|
+
!this.preventScroll) {
|
|
130
|
+
target.scrollTop = lastScrollTop;
|
|
131
|
+
this.preventScroll = true;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Adjusts the visible row heights from the bottom of the viewport.
|
|
136
|
+
*/
|
|
137
|
+
adjustBottomRowHeights() {
|
|
138
|
+
const rows = this.viewport.rows;
|
|
139
|
+
const rowsLn = rows.length;
|
|
140
|
+
const lastRow = rows[rowsLn - 1];
|
|
141
|
+
let rowTop = lastRow.translateY;
|
|
142
|
+
const rowBottom = rowTop + lastRow.htmlElement.offsetHeight;
|
|
143
|
+
let newHeight = lastRow.cells[0].htmlElement.offsetHeight;
|
|
144
|
+
rowTop = rowBottom - newHeight;
|
|
145
|
+
lastRow.htmlElement.style.height = newHeight + 'px';
|
|
146
|
+
lastRow.setTranslateY(rowTop);
|
|
147
|
+
for (let j = 0, jEnd = lastRow.cells.length; j < jEnd; ++j) {
|
|
148
|
+
lastRow.cells[j].htmlElement.style.transform = '';
|
|
149
|
+
}
|
|
150
|
+
for (let i = rowsLn - 2; i >= 0; i--) {
|
|
151
|
+
const row = rows[i];
|
|
152
|
+
newHeight = row.cells[0].htmlElement.offsetHeight;
|
|
153
|
+
rowTop -= newHeight;
|
|
154
|
+
row.htmlElement.style.height = newHeight + 'px';
|
|
155
|
+
row.setTranslateY(rowTop);
|
|
156
|
+
for (let j = 0, jEnd = row.cells.length; j < jEnd; ++j) {
|
|
157
|
+
row.cells[j].htmlElement.style.transform = '';
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Renders rows in the specified range. Removes rows that are out of the
|
|
163
|
+
* range except the last row.
|
|
164
|
+
*
|
|
165
|
+
* @param rowCursor
|
|
166
|
+
* The index of the first visible row.
|
|
167
|
+
*/
|
|
168
|
+
renderRows(rowCursor) {
|
|
169
|
+
const { viewport: vp, buffer } = this;
|
|
170
|
+
const rowCount = vp.dataTable.getRowCount();
|
|
171
|
+
// Stop rendering if there are no rows to render.
|
|
172
|
+
if (rowCount < 1) {
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
const isVirtualization = this.viewport.virtualRows;
|
|
176
|
+
const rowsPerPage = isVirtualization ? Math.ceil((vp.grid.tableElement?.clientHeight || 0) /
|
|
177
|
+
this.defaultRowHeight) : Infinity; // Need to be refactored when add pagination
|
|
178
|
+
let rows = vp.rows;
|
|
179
|
+
if (!isVirtualization && rows.length > 50) {
|
|
180
|
+
// eslint-disable-next-line no-console
|
|
181
|
+
console.warn('Grid: a large dataset can cause performance issues when ' +
|
|
182
|
+
'virtualization is disabled. Consider enabling ' +
|
|
183
|
+
'virtualization in the rows settings.');
|
|
184
|
+
}
|
|
185
|
+
if (!rows.length) {
|
|
186
|
+
const last = new TableRow(vp, rowCount - 1);
|
|
187
|
+
vp.tbodyElement.appendChild(last.htmlElement);
|
|
188
|
+
last.render();
|
|
189
|
+
rows.push(last);
|
|
190
|
+
if (isVirtualization) {
|
|
191
|
+
last.setTranslateY(last.getDefaultTopOffset());
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
const from = Math.max(0, Math.min(rowCursor - buffer, rowCount - rowsPerPage));
|
|
195
|
+
const to = Math.min(rowCursor + rowsPerPage + buffer, rows[rows.length - 1].index - 1);
|
|
196
|
+
const alwaysLastRow = rows.pop();
|
|
197
|
+
const tempRows = [];
|
|
198
|
+
// Remove rows that are out of the range except the last row.
|
|
199
|
+
for (let i = 0, iEnd = rows.length; i < iEnd; ++i) {
|
|
200
|
+
const row = rows[i];
|
|
201
|
+
const rowIndex = row.index;
|
|
202
|
+
if (rowIndex < from || rowIndex > to) {
|
|
203
|
+
row.destroy();
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
tempRows.push(row);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
rows = tempRows;
|
|
210
|
+
vp.rows = rows;
|
|
211
|
+
for (let i = from; i <= to; ++i) {
|
|
212
|
+
const row = rows[i - (rows[0]?.index || 0)];
|
|
213
|
+
// Recreate row when it is destroyed and it is in the range.
|
|
214
|
+
if (!row) {
|
|
215
|
+
const newRow = new TableRow(vp, i);
|
|
216
|
+
rows.push(newRow);
|
|
217
|
+
newRow.rendered = false;
|
|
218
|
+
if (isVirtualization) {
|
|
219
|
+
newRow.setTranslateY(newRow.getDefaultTopOffset());
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
rows.sort((a, b) => a.index - b.index);
|
|
224
|
+
for (let i = 0, iEnd = rows.length; i < iEnd; ++i) {
|
|
225
|
+
if (!rows[i].rendered) {
|
|
226
|
+
vp.tbodyElement.insertBefore(rows[i].htmlElement, vp.tbodyElement.lastChild);
|
|
227
|
+
rows[i].render();
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
if (alwaysLastRow) {
|
|
231
|
+
rows.push(alwaysLastRow);
|
|
232
|
+
}
|
|
233
|
+
// Focus the cell if the focus cursor is set
|
|
234
|
+
if (vp.focusCursor) {
|
|
235
|
+
const [rowIndex, columnIndex] = vp.focusCursor;
|
|
236
|
+
const row = rows.find((row) => row.index === rowIndex);
|
|
237
|
+
if (row) {
|
|
238
|
+
row.cells[columnIndex]?.htmlElement.focus({
|
|
239
|
+
preventScroll: true
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
// Set the focus anchor cell
|
|
244
|
+
if ((!vp.focusCursor || !vp.focusAnchorCell?.row.rendered) &&
|
|
245
|
+
rows.length > 0) {
|
|
246
|
+
const rowIndex = rowCursor - rows[0].index;
|
|
247
|
+
if (rows[rowIndex]) {
|
|
248
|
+
vp.setFocusAnchorCell(rows[rowIndex].cells[0]);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Adjusts the heights of the rows based on the current scroll position.
|
|
254
|
+
* It handles the possibility of the rows having different heights than
|
|
255
|
+
* the default height.
|
|
256
|
+
*/
|
|
257
|
+
adjustRowHeights() {
|
|
258
|
+
if (this.strictRowHeights ||
|
|
259
|
+
!this.viewport.virtualRows) {
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
const { rowCursor: cursor, defaultRowHeight: defaultH } = this;
|
|
263
|
+
const { rows, tbodyElement } = this.viewport;
|
|
264
|
+
const rowsLn = rows.length;
|
|
265
|
+
if (rowsLn < 1) {
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
let translateBuffer = rows[0].getDefaultTopOffset();
|
|
269
|
+
for (let i = 0; i < rowsLn; ++i) {
|
|
270
|
+
const row = rows[i];
|
|
271
|
+
// Reset row height and cell transforms
|
|
272
|
+
row.htmlElement.style.height = '';
|
|
273
|
+
if (row.cells[0].htmlElement.style.transform) {
|
|
274
|
+
for (let j = 0, jEnd = row.cells.length; j < jEnd; ++j) {
|
|
275
|
+
const cell = row.cells[j];
|
|
276
|
+
cell.htmlElement.style.transform = '';
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
// Rows above the first visible row
|
|
280
|
+
if (row.index < cursor) {
|
|
281
|
+
row.htmlElement.style.height = defaultH + 'px';
|
|
282
|
+
continue;
|
|
283
|
+
}
|
|
284
|
+
const cellHeight = row.cells[0].htmlElement.offsetHeight;
|
|
285
|
+
row.htmlElement.style.height = cellHeight + 'px';
|
|
286
|
+
// Rows below the first visible row
|
|
287
|
+
if (row.index > cursor) {
|
|
288
|
+
continue;
|
|
289
|
+
}
|
|
290
|
+
// First visible row
|
|
291
|
+
if (row.htmlElement.offsetHeight > defaultH) {
|
|
292
|
+
const newHeight = Math.floor(cellHeight - (cellHeight - defaultH) * (tbodyElement.scrollTop / defaultH - cursor));
|
|
293
|
+
row.htmlElement.style.height = newHeight + 'px';
|
|
294
|
+
for (let j = 0, jEnd = row.cells.length; j < jEnd; ++j) {
|
|
295
|
+
const cell = row.cells[j];
|
|
296
|
+
cell.htmlElement.style.transform = `translateY(${newHeight - cellHeight}px)`;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
rows[0].setTranslateY(translateBuffer);
|
|
301
|
+
for (let i = 1, iEnd = rowsLn - 1; i < iEnd; ++i) {
|
|
302
|
+
translateBuffer += rows[i - 1].htmlElement.offsetHeight;
|
|
303
|
+
rows[i].setTranslateY(translateBuffer);
|
|
304
|
+
}
|
|
305
|
+
// Set the proper offset for the last row
|
|
306
|
+
const lastRow = rows[rowsLn - 1];
|
|
307
|
+
const preLastRow = rows[rowsLn - 2];
|
|
308
|
+
if (preLastRow && preLastRow.index === lastRow.index - 1) {
|
|
309
|
+
lastRow.setTranslateY(preLastRow.htmlElement.offsetHeight + translateBuffer);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Reflow the rendered rows content dimensions.
|
|
314
|
+
*/
|
|
315
|
+
reflowRows() {
|
|
316
|
+
const rows = this.viewport.rows;
|
|
317
|
+
if (rows.length < 1) {
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
for (let i = 0, iEnd = rows.length; i < iEnd; ++i) {
|
|
321
|
+
rows[i].reflow();
|
|
322
|
+
}
|
|
323
|
+
this.adjustRowHeights();
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Returns the default height of a row. This method should be called only
|
|
327
|
+
* once on initialization.
|
|
328
|
+
*/
|
|
329
|
+
getDefaultRowHeight() {
|
|
330
|
+
const vp = this.viewport;
|
|
331
|
+
const mockRow = new TableRow(vp, 0);
|
|
332
|
+
mockRow.htmlElement.style.position = 'absolute';
|
|
333
|
+
mockRow.htmlElement.classList.add(Globals.getClassName('mockedRow'));
|
|
334
|
+
this.viewport.tbodyElement.appendChild(mockRow.htmlElement);
|
|
335
|
+
mockRow.render();
|
|
336
|
+
const defaultRowHeight = mockRow.htmlElement.offsetHeight;
|
|
337
|
+
mockRow.destroy();
|
|
338
|
+
return defaultRowHeight;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
/* *
|
|
342
|
+
*
|
|
343
|
+
* Default Export
|
|
344
|
+
*
|
|
345
|
+
* */
|
|
346
|
+
export default RowsVirtualizer;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type DataTable from '../../../../Data/DataTable';
|
|
2
|
+
import type Column from '../Column';
|
|
3
|
+
import type TableRow from './TableRow';
|
|
4
|
+
import Cell from '../Cell.js';
|
|
5
|
+
import CellContent from '../CellContent/CellContent.js';
|
|
6
|
+
/**
|
|
7
|
+
* Represents a cell in the data grid.
|
|
8
|
+
*/
|
|
9
|
+
declare class TableCell extends Cell {
|
|
10
|
+
/**
|
|
11
|
+
* The row of the cell.
|
|
12
|
+
*/
|
|
13
|
+
readonly row: TableRow;
|
|
14
|
+
/**
|
|
15
|
+
* The column of the cell.
|
|
16
|
+
*/
|
|
17
|
+
column: Column;
|
|
18
|
+
/**
|
|
19
|
+
* The cell's content.
|
|
20
|
+
*/
|
|
21
|
+
content?: CellContent;
|
|
22
|
+
/**
|
|
23
|
+
* Constructs a cell in the data grid.
|
|
24
|
+
*
|
|
25
|
+
* @param row
|
|
26
|
+
* The row of the cell.
|
|
27
|
+
*
|
|
28
|
+
* @param column
|
|
29
|
+
* The column of the cell.
|
|
30
|
+
*/
|
|
31
|
+
constructor(row: TableRow, column: Column);
|
|
32
|
+
/**
|
|
33
|
+
* Renders the cell by appending it to the row and setting its value.
|
|
34
|
+
*/
|
|
35
|
+
render(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Sets the cell value and updates its content with it.
|
|
38
|
+
*
|
|
39
|
+
* @param value
|
|
40
|
+
* The raw value to set. If not provided, it will use the value from the
|
|
41
|
+
* data table for the current row and column.
|
|
42
|
+
*
|
|
43
|
+
* @param updateTable
|
|
44
|
+
* Whether to update the table after setting the content. Defaults to
|
|
45
|
+
* `false`, meaning the table will not be updated.
|
|
46
|
+
*/
|
|
47
|
+
setValue(value?: DataTable.CellType, updateTable?: boolean): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Updates the the data table so that it reflects the current state of
|
|
50
|
+
* the grid.
|
|
51
|
+
*
|
|
52
|
+
* @returns
|
|
53
|
+
* A promise that resolves to `true` if the cell triggered all the whole
|
|
54
|
+
* viewport rows to be updated, or `false` if the only change should be
|
|
55
|
+
* the cell's content.
|
|
56
|
+
*/
|
|
57
|
+
private updateDataTable;
|
|
58
|
+
initEvents(): void;
|
|
59
|
+
/**
|
|
60
|
+
* Handles the focus event on the cell.
|
|
61
|
+
*/
|
|
62
|
+
protected onFocus(): void;
|
|
63
|
+
/**
|
|
64
|
+
* Handles the mouse out event on the cell.
|
|
65
|
+
*/
|
|
66
|
+
protected onMouseOut(): void;
|
|
67
|
+
/**
|
|
68
|
+
* Handles the double click event on the cell.
|
|
69
|
+
*
|
|
70
|
+
* @param e
|
|
71
|
+
* The mouse event object.
|
|
72
|
+
*/
|
|
73
|
+
protected onDblClick(e: MouseEvent): void;
|
|
74
|
+
onClick(): void;
|
|
75
|
+
/**
|
|
76
|
+
* Destroys the cell.
|
|
77
|
+
*/
|
|
78
|
+
destroy(): void;
|
|
79
|
+
}
|
|
80
|
+
declare namespace TableCell {
|
|
81
|
+
/**
|
|
82
|
+
* Event interface for table cell events.
|
|
83
|
+
*/
|
|
84
|
+
interface TableCellEvent {
|
|
85
|
+
target: TableCell;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
export default TableCell;
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/* *
|
|
2
|
+
*
|
|
3
|
+
* Grid class
|
|
4
|
+
*
|
|
5
|
+
* (c) 2020-2025 Highsoft AS
|
|
6
|
+
*
|
|
7
|
+
* License: www.highcharts.com/license
|
|
8
|
+
*
|
|
9
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
10
|
+
*
|
|
11
|
+
* Authors:
|
|
12
|
+
* - Dawid Dragula
|
|
13
|
+
* - Sebastian Bochan
|
|
14
|
+
*
|
|
15
|
+
* */
|
|
16
|
+
'use strict';
|
|
17
|
+
import Globals from '../../Globals.js';
|
|
18
|
+
import Cell from '../Cell.js';
|
|
19
|
+
import Utils from '../../../../Core/Utilities.js';
|
|
20
|
+
const { fireEvent } = Utils;
|
|
21
|
+
/* *
|
|
22
|
+
*
|
|
23
|
+
* Class
|
|
24
|
+
*
|
|
25
|
+
* */
|
|
26
|
+
/**
|
|
27
|
+
* Represents a cell in the data grid.
|
|
28
|
+
*/
|
|
29
|
+
class TableCell extends Cell {
|
|
30
|
+
/* *
|
|
31
|
+
*
|
|
32
|
+
* Constructor
|
|
33
|
+
*
|
|
34
|
+
* */
|
|
35
|
+
/**
|
|
36
|
+
* Constructs a cell in the data grid.
|
|
37
|
+
*
|
|
38
|
+
* @param row
|
|
39
|
+
* The row of the cell.
|
|
40
|
+
*
|
|
41
|
+
* @param column
|
|
42
|
+
* The column of the cell.
|
|
43
|
+
*/
|
|
44
|
+
constructor(row, column) {
|
|
45
|
+
super(row, column);
|
|
46
|
+
this.column = column;
|
|
47
|
+
this.row = row;
|
|
48
|
+
this.column.registerCell(this);
|
|
49
|
+
}
|
|
50
|
+
/* *
|
|
51
|
+
*
|
|
52
|
+
* Methods
|
|
53
|
+
*
|
|
54
|
+
* */
|
|
55
|
+
/**
|
|
56
|
+
* Renders the cell by appending it to the row and setting its value.
|
|
57
|
+
*/
|
|
58
|
+
render() {
|
|
59
|
+
super.render();
|
|
60
|
+
void this.setValue();
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Sets the cell value and updates its content with it.
|
|
64
|
+
*
|
|
65
|
+
* @param value
|
|
66
|
+
* The raw value to set. If not provided, it will use the value from the
|
|
67
|
+
* data table for the current row and column.
|
|
68
|
+
*
|
|
69
|
+
* @param updateTable
|
|
70
|
+
* Whether to update the table after setting the content. Defaults to
|
|
71
|
+
* `false`, meaning the table will not be updated.
|
|
72
|
+
*/
|
|
73
|
+
async setValue(value = this.column.data?.[this.row.index], updateTable = false) {
|
|
74
|
+
this.value = value;
|
|
75
|
+
if (updateTable && await this.updateDataTable()) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (this.content) {
|
|
79
|
+
this.content.update();
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
this.content = this.column.createCellContent(this);
|
|
83
|
+
}
|
|
84
|
+
this.htmlElement.setAttribute('data-value', this.value + '');
|
|
85
|
+
this.setCustomClassName(this.column.options.cells?.className);
|
|
86
|
+
// Add alignment to number column
|
|
87
|
+
if (this.column.dataType === 'number') {
|
|
88
|
+
this.setCustomClassName(Globals.getClassName('rightAlign'));
|
|
89
|
+
}
|
|
90
|
+
fireEvent(this, 'afterRender', { target: this });
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Updates the the data table so that it reflects the current state of
|
|
94
|
+
* the grid.
|
|
95
|
+
*
|
|
96
|
+
* @returns
|
|
97
|
+
* A promise that resolves to `true` if the cell triggered all the whole
|
|
98
|
+
* viewport rows to be updated, or `false` if the only change should be
|
|
99
|
+
* the cell's content.
|
|
100
|
+
*/
|
|
101
|
+
async updateDataTable() {
|
|
102
|
+
if (this.column.data?.[this.row.index] === this.value) {
|
|
103
|
+
// Abort if the value is the same as in the data table.
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
const vp = this.column.viewport;
|
|
107
|
+
const { dataTable: originalDataTable } = vp.grid;
|
|
108
|
+
const rowTableIndex = this.row.id &&
|
|
109
|
+
originalDataTable?.getLocalRowIndex(this.row.id);
|
|
110
|
+
if (!originalDataTable || rowTableIndex === void 0) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
this.row.data[this.column.id] = this.value;
|
|
114
|
+
originalDataTable.setCell(this.column.id, rowTableIndex, this.value);
|
|
115
|
+
// If no modifiers, don't update all rows
|
|
116
|
+
if (vp.grid.dataTable === vp.grid.presentationTable) {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
await vp.updateRows();
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
initEvents() {
|
|
123
|
+
this.cellEvents.push(['dblclick', (e) => (this.onDblClick(e))]);
|
|
124
|
+
this.cellEvents.push(['mouseout', () => this.onMouseOut()]);
|
|
125
|
+
this.cellEvents.push(['mouseover', () => this.onMouseOver()]);
|
|
126
|
+
this.cellEvents.push(['mousedown', (e) => {
|
|
127
|
+
this.onMouseDown(e);
|
|
128
|
+
}]);
|
|
129
|
+
super.initEvents();
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Handles the focus event on the cell.
|
|
133
|
+
*/
|
|
134
|
+
onFocus() {
|
|
135
|
+
super.onFocus();
|
|
136
|
+
const vp = this.row.viewport;
|
|
137
|
+
vp.focusCursor = [
|
|
138
|
+
this.row.index,
|
|
139
|
+
this.column.index
|
|
140
|
+
];
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Handles the mouse down event on the cell.
|
|
144
|
+
*
|
|
145
|
+
* @param e
|
|
146
|
+
* The mouse event object.
|
|
147
|
+
*
|
|
148
|
+
* @internal
|
|
149
|
+
*/
|
|
150
|
+
onMouseDown(e) {
|
|
151
|
+
if (e.target === this.htmlElement) {
|
|
152
|
+
this.htmlElement.focus();
|
|
153
|
+
}
|
|
154
|
+
fireEvent(this, 'mouseDown', {
|
|
155
|
+
target: this,
|
|
156
|
+
originalEvent: e
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Handles the mouse over event on the cell.
|
|
161
|
+
* @internal
|
|
162
|
+
*/
|
|
163
|
+
onMouseOver() {
|
|
164
|
+
const { grid } = this.row.viewport;
|
|
165
|
+
grid.hoverRow(this.row.index);
|
|
166
|
+
grid.hoverColumn(this.column.id);
|
|
167
|
+
fireEvent(this, 'mouseOver', {
|
|
168
|
+
target: this
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Handles the mouse out event on the cell.
|
|
173
|
+
*/
|
|
174
|
+
onMouseOut() {
|
|
175
|
+
const { grid } = this.row.viewport;
|
|
176
|
+
grid.hoverRow();
|
|
177
|
+
grid.hoverColumn();
|
|
178
|
+
fireEvent(this, 'mouseOut', {
|
|
179
|
+
target: this
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Handles the double click event on the cell.
|
|
184
|
+
*
|
|
185
|
+
* @param e
|
|
186
|
+
* The mouse event object.
|
|
187
|
+
*/
|
|
188
|
+
onDblClick(e) {
|
|
189
|
+
fireEvent(this, 'dblClick', {
|
|
190
|
+
target: this,
|
|
191
|
+
originalEvent: e
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
onClick() {
|
|
195
|
+
fireEvent(this, 'click', {
|
|
196
|
+
target: this
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Handles the key down event on the cell.
|
|
201
|
+
*
|
|
202
|
+
* @param e
|
|
203
|
+
* Keyboard event object.
|
|
204
|
+
*
|
|
205
|
+
* @internal
|
|
206
|
+
*/
|
|
207
|
+
onKeyDown(e) {
|
|
208
|
+
if (e.target !== this.htmlElement) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
fireEvent(this, 'keyDown', {
|
|
212
|
+
target: this,
|
|
213
|
+
originalEvent: e
|
|
214
|
+
});
|
|
215
|
+
super.onKeyDown(e);
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Destroys the cell.
|
|
219
|
+
*/
|
|
220
|
+
destroy() {
|
|
221
|
+
this.content?.destroy();
|
|
222
|
+
delete this.content;
|
|
223
|
+
super.destroy();
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
/* *
|
|
227
|
+
*
|
|
228
|
+
* Default Export
|
|
229
|
+
*
|
|
230
|
+
* */
|
|
231
|
+
export default TableCell;
|