@highcharts/grid-pro 2.1.1 → 2.3.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/LICENSE.txt +6 -0
- package/README.md +15 -9
- package/css/grid-pro.css +1289 -1153
- package/css/modules/grid-base-variables.css +131 -0
- package/css/modules/grid-button-variables.css +140 -0
- package/css/modules/grid-caption-variables.css +11 -0
- package/css/modules/grid-description-variables.css +11 -0
- package/css/modules/grid-input-variables.css +114 -0
- package/css/modules/grid-link-variables.css +18 -0
- package/css/modules/grid-menu-variables.css +50 -0
- package/css/modules/grid-pagination-variables.css +12 -0
- package/css/modules/grid-popup-variables.css +24 -0
- package/css/modules/grid-pro.css +234 -0
- package/css/modules/grid-table-variables.css +385 -0
- package/css/modules/grid-theme-default.css +55 -0
- package/es-modules/Accessibility/A11yI18n.js +4 -5
- package/es-modules/Accessibility/Accessibility.js +5 -5
- package/es-modules/Accessibility/AccessibilityComponent.d.ts +3 -3
- package/es-modules/Accessibility/AccessibilityComponent.js +4 -3
- package/es-modules/Accessibility/Components/AnnotationsA11y.js +4 -3
- package/es-modules/Accessibility/Components/ContainerComponent.js +4 -3
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +9 -9
- package/es-modules/Accessibility/Components/LegendComponent.js +5 -5
- package/es-modules/Accessibility/Components/MenuComponent.js +5 -5
- package/es-modules/Accessibility/Components/NavigatorComponent.js +6 -7
- package/es-modules/Accessibility/Components/RangeSelectorComponent.js +5 -5
- package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +15 -5
- package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +7 -7
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +4 -3
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +7 -7
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +5 -5
- package/es-modules/Accessibility/Components/ZoomComponent.js +5 -5
- package/es-modules/Accessibility/FocusBorder.js +5 -5
- package/es-modules/Accessibility/HighContrastMode.js +4 -3
- package/es-modules/Accessibility/HighContrastTheme.js +4 -3
- package/es-modules/Accessibility/KeyboardNavigation.js +5 -5
- package/es-modules/Accessibility/KeyboardNavigationHandler.js +5 -5
- package/es-modules/Accessibility/Options/A11yDefaults.d.ts +11 -0
- package/es-modules/Accessibility/Options/A11yDefaults.js +15 -3
- package/es-modules/Accessibility/Options/DeprecatedOptions.d.ts +58 -0
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +11 -5
- package/es-modules/Accessibility/Options/LangDefaults.js +13 -3
- package/es-modules/Accessibility/ProxyElement.js +6 -8
- package/es-modules/Accessibility/ProxyProvider.js +5 -5
- package/es-modules/Accessibility/Utils/Announcer.js +6 -6
- package/es-modules/Accessibility/Utils/ChartUtilities.js +5 -5
- package/es-modules/Accessibility/Utils/DOMElementProvider.js +4 -3
- package/es-modules/Accessibility/Utils/EventProvider.d.ts +3 -3
- package/es-modules/Accessibility/Utils/EventProvider.js +10 -5
- package/es-modules/Accessibility/Utils/HTMLUtilities.js +5 -5
- package/es-modules/Core/Animation/AnimationOptions.d.ts +42 -0
- package/es-modules/Core/Animation/AnimationOptions.js +10 -0
- package/es-modules/Core/Animation/AnimationUtilities.js +40 -5
- package/es-modules/Core/Animation/Fx.d.ts +1 -130
- package/es-modules/Core/Animation/Fx.js +14 -8
- package/es-modules/Core/Animation/FxBase.d.ts +1 -0
- package/es-modules/Core/Animation/FxBase.js +11 -0
- package/es-modules/Core/Callback.d.ts +56 -0
- package/es-modules/Core/Callback.js +10 -0
- package/es-modules/Core/Chart/Chart.d.ts +659 -400
- package/es-modules/Core/Chart/Chart.js +112 -95
- package/es-modules/Core/Chart/Chart3D.d.ts +123 -233
- package/es-modules/Core/Chart/Chart3D.js +23 -37
- package/es-modules/Core/Chart/ChartBase.d.ts +3 -0
- package/es-modules/Core/Chart/ChartBase.js +11 -0
- package/es-modules/Core/Chart/ChartDefaults.js +18 -12
- package/es-modules/Core/Chart/ChartNavigationComposition.d.ts +1 -55
- package/es-modules/Core/Chart/ChartNavigationComposition.js +13 -13
- package/es-modules/Core/Chart/ChartOptions.d.ts +1225 -0
- package/es-modules/Core/Chart/ChartOptions.js +10 -0
- package/es-modules/Core/Chart/GanttChart.d.ts +0 -38
- package/es-modules/Core/Chart/GanttChart.js +5 -5
- package/es-modules/Core/Chart/MapChart.d.ts +9 -4
- package/es-modules/Core/Chart/MapChart.js +14 -5
- package/es-modules/Core/Chart/StockChart.d.ts +0 -85
- package/es-modules/Core/Chart/StockChart.js +35 -18
- package/es-modules/Core/Color/Color.d.ts +16 -24
- package/es-modules/Core/Color/Color.js +27 -10
- package/es-modules/Core/Color/ColorString.d.ts +0 -23
- package/es-modules/Core/Color/ColorString.js +11 -0
- package/es-modules/Core/Color/ColorType.d.ts +0 -33
- package/es-modules/Core/Color/ColorType.js +11 -0
- package/es-modules/Core/Color/GradientColor.d.ts +0 -33
- package/es-modules/Core/Color/GradientColor.js +11 -0
- package/es-modules/Core/Color/Palettes.d.ts +1 -84
- package/es-modules/Core/Color/Palettes.js +2 -1
- package/es-modules/Core/Defaults.d.ts +6 -0
- package/es-modules/Core/Defaults.js +66 -75
- package/es-modules/Core/Delaunay.d.ts +52 -0
- package/es-modules/Core/Delaunay.js +310 -0
- package/es-modules/Core/Foundation.d.ts +1 -19
- package/es-modules/Core/Foundation.js +8 -6
- package/es-modules/Core/Geometry/CircleObject.d.ts +5 -0
- package/es-modules/Core/Geometry/CircleObject.js +10 -0
- package/es-modules/Core/Geometry/CircleUtilities.d.ts +1 -189
- package/es-modules/Core/Geometry/CircleUtilities.js +18 -17
- package/es-modules/Core/Geometry/GeometryObject.d.ts +7 -0
- package/es-modules/Core/Geometry/GeometryObject.js +10 -0
- package/es-modules/Core/Geometry/GeometryUtilities.d.ts +1 -48
- package/es-modules/Core/Geometry/GeometryUtilities.js +9 -7
- package/es-modules/Core/Geometry/IntersectionObject.d.ts +7 -0
- package/es-modules/Core/Geometry/IntersectionObject.js +10 -0
- package/es-modules/Core/Geometry/PolygonClip.d.ts +1 -19
- package/es-modules/Core/Geometry/PolygonClip.js +9 -7
- package/es-modules/Core/Globals.d.ts +9 -31
- package/es-modules/Core/Globals.js +9 -10
- package/es-modules/Core/GlobalsBase.d.ts +35 -0
- package/es-modules/Core/GlobalsBase.js +11 -0
- package/es-modules/Core/HttpUtilities.d.ts +54 -17
- package/es-modules/Core/HttpUtilities.js +16 -16
- package/es-modules/Core/JSON.d.ts +29 -0
- package/es-modules/Core/JSON.js +13 -0
- package/es-modules/Core/KeyboardEvent.d.ts +1 -0
- package/es-modules/Core/KeyboardEvent.js +11 -0
- package/es-modules/Core/MSPointer.d.ts +1 -74
- package/es-modules/Core/MSPointer.js +24 -15
- package/es-modules/Core/Math3D.d.ts +1 -117
- package/es-modules/Core/Math3D.js +14 -12
- package/es-modules/Core/Options.d.ts +338 -0
- package/es-modules/Core/Options.js +10 -0
- package/es-modules/Core/Pointer.d.ts +71 -445
- package/es-modules/Core/Pointer.js +74 -69
- package/es-modules/Core/PointerEvent.d.ts +20 -0
- package/es-modules/Core/PointerEvent.js +11 -0
- package/es-modules/Core/Renderer/AlignObject.d.ts +25 -27
- package/es-modules/Core/Renderer/AlignObject.js +11 -0
- package/es-modules/Core/Renderer/BBoxObject.d.ts +20 -31
- package/es-modules/Core/Renderer/BBoxObject.js +11 -0
- package/es-modules/Core/Renderer/CSSObject.d.ts +268 -59
- package/es-modules/Core/Renderer/CSSObject.js +10 -0
- package/es-modules/Core/Renderer/DOMElementType.d.ts +1 -33
- package/es-modules/Core/Renderer/DOMElementType.js +11 -0
- package/es-modules/Core/Renderer/DashStyleValue.d.ts +1 -27
- package/es-modules/Core/Renderer/DashStyleValue.js +11 -0
- package/es-modules/Core/Renderer/FontMetricsObject.d.ts +6 -26
- package/es-modules/Core/Renderer/FontMetricsObject.js +11 -0
- package/es-modules/Core/Renderer/HTML/AST.d.ts +3 -15
- package/es-modules/Core/Renderer/HTML/AST.js +24 -15
- package/es-modules/Core/Renderer/HTML/HTMLAttributes.d.ts +1 -25
- package/es-modules/Core/Renderer/HTML/HTMLAttributes.js +11 -0
- package/es-modules/Core/Renderer/HTML/HTMLElement.d.ts +0 -54
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +28 -24
- package/es-modules/Core/Renderer/PolygonBoxObject.d.ts +15 -12
- package/es-modules/Core/Renderer/PolygonBoxObject.js +11 -0
- package/es-modules/Core/Renderer/Position3DObject.d.ts +6 -30
- package/es-modules/Core/Renderer/Position3DObject.js +11 -0
- package/es-modules/Core/Renderer/PositionObject.d.ts +9 -23
- package/es-modules/Core/Renderer/PositionObject.js +11 -0
- package/es-modules/Core/Renderer/RectangleObject.d.ts +6 -30
- package/es-modules/Core/Renderer/RectangleObject.js +11 -0
- package/es-modules/Core/Renderer/RendererRegistry.d.ts +1 -29
- package/es-modules/Core/Renderer/RendererRegistry.js +6 -3
- package/es-modules/Core/Renderer/RendererType.d.ts +1 -53
- package/es-modules/Core/Renderer/RendererType.js +11 -0
- package/es-modules/Core/Renderer/RendererUtilities.d.ts +1 -26
- package/es-modules/Core/Renderer/RendererUtilities.js +41 -23
- package/es-modules/Core/Renderer/SVG/ButtonThemeObject.d.ts +26 -31
- package/es-modules/Core/Renderer/SVG/SVGArc3D.d.ts +1 -44
- package/es-modules/Core/Renderer/SVG/SVGAttributes.d.ts +15 -51
- package/es-modules/Core/Renderer/SVG/SVGAttributes3D.d.ts +1 -42
- package/es-modules/Core/Renderer/SVG/SVGCuboid.d.ts +1 -42
- package/es-modules/Core/Renderer/SVG/SVGElement.d.ts +459 -0
- package/es-modules/Core/Renderer/SVG/SVGElement3D.d.ts +1 -0
- package/es-modules/Core/Renderer/SVG/SVGElementBase.d.ts +0 -23
- package/es-modules/Core/Renderer/SVG/SVGLabel.d.ts +14 -0
- package/es-modules/Core/Renderer/SVG/SVGPath.d.ts +18 -56
- package/es-modules/Core/Renderer/SVG/SVGPath3D.d.ts +0 -30
- package/es-modules/Core/Renderer/SVG/SVGRenderer.d.ts +652 -0
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.d.ts +1 -0
- package/es-modules/Core/Renderer/SVG/SVGRendererBase.d.ts +0 -24
- package/es-modules/Core/Renderer/SVG/SymbolOptions.d.ts +3 -26
- package/es-modules/Core/Renderer/SVG/SymbolType.d.ts +1 -41
- package/es-modules/Core/Renderer/SVG/Symbols.d.ts +146 -0
- package/es-modules/Core/Renderer/SVG/TextBuilder.d.ts +1 -0
- package/es-modules/Core/Renderer/ShadowOptionsObject.d.ts +21 -30
- package/es-modules/Core/Renderer/ShadowOptionsObject.js +11 -0
- package/es-modules/Core/Renderer/SizeObject.d.ts +0 -23
- package/es-modules/Core/Renderer/SizeObject.js +11 -0
- package/es-modules/Core/Responsive.d.ts +94 -29
- package/es-modules/Core/Responsive.js +17 -12
- package/es-modules/Core/Templating.d.ts +17 -1
- package/es-modules/Core/Templating.js +12 -8
- package/es-modules/Core/Time.d.ts +18 -1
- package/es-modules/Core/Time.js +6 -5
- package/es-modules/Core/Tooltip.d.ts +67 -123
- package/es-modules/Core/Tooltip.js +161 -108
- package/es-modules/Core/TooltipOptions.d.ts +724 -0
- package/es-modules/Core/TooltipOptions.js +10 -0
- package/es-modules/Core/Utilities.d.ts +32 -703
- package/es-modules/Core/Utilities.js +28 -1443
- package/es-modules/Data/ColumnUtils.d.ts +83 -80
- package/es-modules/Data/ColumnUtils.js +106 -116
- package/es-modules/Data/Connectors/CSVConnector.d.ts +9 -14
- package/es-modules/Data/Connectors/CSVConnector.js +6 -7
- package/es-modules/Data/Connectors/CSVConnectorOptions.d.ts +3 -3
- package/es-modules/Data/Connectors/DataConnector.d.ts +63 -54
- package/es-modules/Data/Connectors/DataConnector.js +67 -56
- package/es-modules/Data/Connectors/DataConnectorOptions.d.ts +3 -3
- package/es-modules/Data/Connectors/DataConnectorType.d.ts +3 -3
- package/es-modules/Data/Connectors/GoogleSheetsConnector.d.ts +40 -42
- package/es-modules/Data/Connectors/GoogleSheetsConnector.js +76 -91
- package/es-modules/Data/Connectors/GoogleSheetsConnectorOptions.d.ts +7 -5
- package/es-modules/Data/Connectors/HTMLTableConnector.d.ts +23 -28
- package/es-modules/Data/Connectors/HTMLTableConnector.js +6 -7
- package/es-modules/Data/Connectors/HTMLTableConnectorOptions.d.ts +3 -3
- package/es-modules/Data/Connectors/JSONConnector.d.ts +9 -14
- package/es-modules/Data/Connectors/JSONConnector.js +6 -7
- package/es-modules/Data/Connectors/JSONConnectorOptions.d.ts +3 -3
- package/es-modules/Data/Converters/CSVConverter.d.ts +5 -5
- package/es-modules/Data/Converters/CSVConverter.js +6 -7
- package/es-modules/Data/Converters/CSVConverterOptions.d.ts +5 -5
- package/es-modules/Data/Converters/DataConverter.d.ts +76 -78
- package/es-modules/Data/Converters/DataConverter.js +29 -56
- package/es-modules/Data/Converters/DataConverterType.d.ts +3 -3
- package/es-modules/Data/Converters/DataConverterUtils.d.ts +88 -81
- package/es-modules/Data/Converters/DataConverterUtils.js +172 -184
- package/es-modules/Data/Converters/GoogleSheetsConverter.d.ts +4 -4
- package/es-modules/Data/Converters/GoogleSheetsConverter.js +6 -6
- package/es-modules/Data/Converters/GoogleSheetsConverterOptions.d.ts +5 -5
- package/es-modules/Data/Converters/HTMLTableConverter.d.ts +4 -4
- package/es-modules/Data/Converters/HTMLTableConverter.js +5 -6
- package/es-modules/Data/Converters/HTMLTableConverterOptions.d.ts +5 -5
- package/es-modules/Data/Converters/JSONConverter.d.ts +7 -7
- package/es-modules/Data/Converters/JSONConverter.js +9 -9
- package/es-modules/Data/Converters/JSONConverterOptions.d.ts +5 -5
- package/es-modules/Data/DataCursor.d.ts +65 -70
- package/es-modules/Data/DataCursor.js +122 -142
- package/es-modules/Data/DataEvent.d.ts +55 -57
- package/es-modules/Data/DataEvent.js +3 -3
- package/es-modules/Data/DataPool.d.ts +10 -17
- package/es-modules/Data/DataPool.js +23 -12
- package/es-modules/Data/DataPoolOptions.d.ts +3 -3
- package/es-modules/Data/DataTable.d.ts +115 -117
- package/es-modules/Data/DataTable.js +67 -33
- package/es-modules/Data/DataTableCore.d.ts +11 -11
- package/es-modules/Data/DataTableCore.js +7 -7
- package/es-modules/Data/DataTableOptions.js +3 -3
- package/es-modules/Data/Formula/Formula.js +3 -3
- package/es-modules/Data/Formula/FormulaParser.js +4 -5
- package/es-modules/Data/Formula/FormulaProcessor.js +4 -5
- package/es-modules/Data/Formula/FormulaTypes.js +3 -3
- package/es-modules/Data/Formula/Functions/ABS.js +3 -3
- package/es-modules/Data/Formula/Functions/AND.js +3 -3
- package/es-modules/Data/Formula/Functions/AVERAGE.js +3 -3
- package/es-modules/Data/Formula/Functions/AVERAGEA.js +3 -3
- package/es-modules/Data/Formula/Functions/COUNT.js +3 -3
- package/es-modules/Data/Formula/Functions/COUNTA.js +3 -3
- package/es-modules/Data/Formula/Functions/IF.js +3 -3
- package/es-modules/Data/Formula/Functions/ISNA.js +3 -3
- package/es-modules/Data/Formula/Functions/MAX.js +3 -3
- package/es-modules/Data/Formula/Functions/MEDIAN.js +3 -3
- package/es-modules/Data/Formula/Functions/MIN.js +3 -3
- package/es-modules/Data/Formula/Functions/MOD.js +3 -3
- package/es-modules/Data/Formula/Functions/MODE.js +3 -3
- package/es-modules/Data/Formula/Functions/NOT.js +3 -3
- package/es-modules/Data/Formula/Functions/OR.js +3 -3
- package/es-modules/Data/Formula/Functions/PRODUCT.js +3 -3
- package/es-modules/Data/Formula/Functions/SUM.js +3 -3
- package/es-modules/Data/Formula/Functions/XOR.js +3 -3
- package/es-modules/Data/Modifiers/ChainModifier.d.ts +29 -34
- package/es-modules/Data/Modifiers/ChainModifier.js +10 -11
- package/es-modules/Data/Modifiers/ChainModifierOptions.js +3 -3
- package/es-modules/Data/Modifiers/DataModifier.d.ts +36 -41
- package/es-modules/Data/Modifiers/DataModifier.js +34 -56
- package/es-modules/Data/Modifiers/DataModifierEvent.js +3 -3
- package/es-modules/Data/Modifiers/DataModifierOptions.js +3 -3
- package/es-modules/Data/Modifiers/DataModifierType.d.ts +3 -3
- package/es-modules/Data/Modifiers/FilterModifier.d.ts +4 -4
- package/es-modules/Data/Modifiers/FilterModifier.js +6 -7
- package/es-modules/Data/Modifiers/FilterModifierOptions.d.ts +3 -2
- package/es-modules/Data/Modifiers/FilterModifierOptions.js +3 -3
- package/es-modules/Data/Modifiers/InvertModifier.d.ts +4 -4
- package/es-modules/Data/Modifiers/InvertModifier.js +6 -7
- package/es-modules/Data/Modifiers/InvertModifierOptions.js +3 -3
- package/es-modules/Data/Modifiers/MathModifier.d.ts +5 -4
- package/es-modules/Data/Modifiers/MathModifier.js +3 -3
- package/es-modules/Data/Modifiers/MathModifierOptions.js +3 -3
- package/es-modules/Data/Modifiers/RangeModifier.d.ts +4 -4
- package/es-modules/Data/Modifiers/RangeModifier.js +6 -7
- package/es-modules/Data/Modifiers/RangeModifierOptions.js +3 -3
- package/es-modules/Data/Modifiers/SortModifier.d.ts +6 -11
- package/es-modules/Data/Modifiers/SortModifier.js +35 -10
- package/es-modules/Data/Modifiers/SortModifierOptions.d.ts +43 -6
- package/es-modules/Data/Modifiers/SortModifierOptions.js +3 -3
- package/es-modules/Grid/Core/Accessibility/A11yOptions.d.ts +77 -0
- package/es-modules/Grid/Core/Accessibility/A11yOptions.js +4 -3
- package/es-modules/Grid/Core/Accessibility/Accessibility.d.ts +68 -1
- package/es-modules/Grid/Core/Accessibility/Accessibility.js +179 -7
- package/es-modules/Grid/Core/Credits.js +3 -3
- package/es-modules/Grid/Core/Data/DataProvider.d.ts +97 -0
- package/es-modules/Grid/Core/Data/DataProvider.js +89 -0
- package/es-modules/Grid/Core/Data/DataProviderRegistry.d.ts +20 -0
- package/es-modules/Grid/Core/Data/DataProviderRegistry.js +52 -0
- package/es-modules/Grid/Core/Data/DataProviderType.d.ts +19 -0
- package/es-modules/Grid/Core/Data/DataProviderType.js +15 -0
- package/es-modules/Grid/Core/Data/LocalDataProvider.d.ts +165 -0
- package/es-modules/Grid/Core/Data/LocalDataProvider.js +341 -0
- package/es-modules/Grid/Core/Defaults.js +21 -7
- package/es-modules/Grid/Core/Globals.d.ts +20 -16
- package/es-modules/Grid/Core/Globals.js +13 -11
- package/es-modules/Grid/Core/Grid.d.ts +43 -23
- package/es-modules/Grid/Core/Grid.js +316 -136
- package/es-modules/Grid/Core/GridUtils.d.ts +33 -0
- package/es-modules/Grid/Core/GridUtils.js +53 -6
- package/es-modules/Grid/Core/Options.d.ts +162 -5
- package/es-modules/Grid/Core/Options.js +3 -3
- package/es-modules/Grid/Core/Pagination/Pagination.d.ts +3 -0
- package/es-modules/Grid/Core/Pagination/Pagination.js +66 -26
- package/es-modules/Grid/Core/Pagination/PaginationOptions.d.ts +4 -40
- package/es-modules/Grid/Core/Pagination/PaginationOptions.js +11 -0
- package/es-modules/Grid/Core/Querying/FilteringController.js +4 -5
- package/es-modules/Grid/Core/Querying/PaginationController.d.ts +2 -2
- package/es-modules/Grid/Core/Querying/PaginationController.js +6 -6
- package/es-modules/Grid/Core/Querying/QueryingController.d.ts +1 -1
- package/es-modules/Grid/Core/Querying/QueryingController.js +5 -29
- package/es-modules/Grid/Core/Querying/SortingController.d.ts +15 -0
- package/es-modules/Grid/Core/Querying/SortingController.js +89 -51
- package/es-modules/Grid/Core/Responsive/ResponsiveComposition.d.ts +53 -0
- package/es-modules/Grid/Core/Responsive/ResponsiveComposition.js +229 -0
- package/es-modules/Grid/Core/Responsive/ResponsiveOptions.d.ts +58 -0
- package/es-modules/Grid/Core/Responsive/ResponsiveOptions.js +15 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/ColumnFiltering.js +5 -6
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterCell.d.ts +3 -3
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterCell.js +6 -7
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterRow.d.ts +1 -1
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterRow.js +5 -5
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilteringTypes.js +3 -3
- package/es-modules/Grid/Core/Table/Actions/ColumnSorting.d.ts +29 -3
- package/es-modules/Grid/Core/Table/Actions/ColumnSorting.js +136 -26
- package/es-modules/Grid/Core/Table/Actions/ColumnsResizer.js +4 -6
- package/es-modules/Grid/Core/Table/Actions/RowsVirtualizer.d.ts +94 -3
- package/es-modules/Grid/Core/Table/Actions/RowsVirtualizer.js +481 -91
- package/es-modules/Grid/Core/Table/Body/CellContextMenu.d.ts +11 -0
- package/es-modules/Grid/Core/Table/Body/CellContextMenu.js +84 -0
- package/es-modules/Grid/Core/Table/Body/TableCell.d.ts +36 -15
- package/es-modules/Grid/Core/Table/Body/TableCell.js +89 -33
- package/es-modules/Grid/Core/Table/Body/TableRow.d.ts +15 -5
- package/es-modules/Grid/Core/Table/Body/TableRow.js +70 -19
- package/es-modules/Grid/Core/Table/Cell.d.ts +16 -10
- package/es-modules/Grid/Core/Table/Cell.js +41 -6
- package/es-modules/Grid/Core/Table/CellContent/CellContent.js +3 -3
- package/es-modules/Grid/Core/Table/CellContent/TextContent.js +7 -12
- package/es-modules/Grid/Core/Table/Column.d.ts +11 -5
- package/es-modules/Grid/Core/Table/Column.js +26 -37
- package/es-modules/Grid/Core/Table/ColumnResizing/AdjacentResizingMode.js +3 -3
- package/es-modules/Grid/Core/Table/ColumnResizing/ColumnResizing.js +3 -3
- package/es-modules/Grid/Core/Table/ColumnResizing/DistributedResizingMode.js +3 -3
- package/es-modules/Grid/Core/Table/ColumnResizing/IndependentResizingMode.js +12 -11
- package/es-modules/Grid/Core/Table/ColumnResizing/ResizingMode.js +7 -6
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ColumnToolbar.d.ts +5 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ColumnToolbar.js +21 -7
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/FilterPopup.js +4 -5
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/FilterMenuButton.js +4 -5
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/SortMenuButton.d.ts +9 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/SortMenuButton.js +37 -9
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuPopup.js +5 -4
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/StateHelpers.js +11 -7
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/FilterToolbarButton.js +4 -5
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/MenuToolbarButton.js +4 -5
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.d.ts +4 -1
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.js +88 -15
- package/es-modules/Grid/Core/Table/Header/HeaderCell.d.ts +8 -3
- package/es-modules/Grid/Core/Table/Header/HeaderCell.js +36 -15
- package/es-modules/Grid/Core/Table/Header/HeaderRow.js +7 -8
- package/es-modules/Grid/Core/Table/Header/TableHeader.d.ts +1 -1
- package/es-modules/Grid/Core/Table/Header/TableHeader.js +6 -6
- package/es-modules/Grid/Core/Table/Row.d.ts +1 -1
- package/es-modules/Grid/Core/Table/Row.js +5 -5
- package/es-modules/Grid/Core/Table/Table.d.ts +68 -12
- package/es-modules/Grid/Core/Table/Table.js +296 -92
- package/es-modules/Grid/Core/UI/Button.js +3 -3
- package/es-modules/Grid/Core/UI/ContextMenu.js +3 -3
- package/es-modules/Grid/Core/UI/ContextMenuButton.d.ts +6 -7
- package/es-modules/Grid/Core/UI/ContextMenuButton.js +8 -6
- package/es-modules/Grid/Core/UI/Popup.js +10 -12
- package/es-modules/Grid/Core/UI/SvgIcons.d.ts +42 -7
- package/es-modules/Grid/Core/UI/SvgIcons.js +209 -36
- package/es-modules/Grid/Core/UI/Toolbar.d.ts +5 -0
- package/es-modules/Grid/Core/UI/Toolbar.js +3 -3
- package/es-modules/Grid/Core/UI/ToolbarButton.d.ts +4 -12
- package/es-modules/Grid/Core/UI/ToolbarButton.js +11 -29
- package/es-modules/Grid/Pro/CellEditing/CellEditMode.d.ts +4 -45
- package/es-modules/Grid/Pro/CellEditing/CellEditMode.js +16 -0
- package/es-modules/Grid/Pro/CellEditing/CellEditing.js +13 -13
- package/es-modules/Grid/Pro/CellEditing/CellEditingComposition.js +4 -5
- package/es-modules/Grid/Pro/CellRendering/CellContentPro.js +3 -3
- package/es-modules/Grid/Pro/CellRendering/CellRenderer.js +3 -3
- package/es-modules/Grid/Pro/CellRendering/CellRendererRegistry.js +3 -3
- package/es-modules/Grid/Pro/CellRendering/CellRendererType.d.ts +1 -34
- package/es-modules/Grid/Pro/CellRendering/CellRendererType.js +15 -0
- package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.d.ts +1 -1
- package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.js +7 -5
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/CheckboxContent.d.ts +2 -2
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/CheckboxContent.js +3 -3
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContent.js +3 -3
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContentBase.js +3 -3
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateTimeInputContent.js +3 -3
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/NumberInputContent.js +4 -5
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/SelectContent.d.ts +2 -2
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/SelectContent.js +3 -3
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/SparklineContent.d.ts +7 -5
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/SparklineContent.js +4 -5
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/TextInputContent.d.ts +2 -2
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/TextInputContent.js +4 -5
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/TimeInputContent.js +3 -3
- package/es-modules/Grid/Pro/CellRendering/Renderers/CheckboxRenderer.js +4 -5
- package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRenderer.js +4 -5
- package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRendererBase.js +3 -3
- package/es-modules/Grid/Pro/CellRendering/Renderers/DateTimeInputRenderer.js +4 -5
- package/es-modules/Grid/Pro/CellRendering/Renderers/NumberInputRenderer.js +4 -5
- package/es-modules/Grid/Pro/CellRendering/Renderers/SelectRenderer.js +4 -5
- package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.d.ts +4 -4
- package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.js +4 -5
- package/es-modules/Grid/Pro/CellRendering/Renderers/TextInputRenderer.js +4 -5
- package/es-modules/Grid/Pro/CellRendering/Renderers/TextRenderer.js +4 -5
- package/es-modules/Grid/Pro/CellRendering/Renderers/TimeInputRenderer.js +4 -5
- package/es-modules/Grid/Pro/ColumnTypes/Validator.d.ts +10 -1
- package/es-modules/Grid/Pro/ColumnTypes/Validator.js +56 -12
- package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.d.ts +1 -1
- package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.js +6 -7
- package/es-modules/Grid/Pro/Credits/CreditsPro.js +3 -3
- package/es-modules/Grid/Pro/Credits/CreditsProComposition.js +4 -6
- package/es-modules/Grid/Pro/Data/DataSourceHelper.d.ts +74 -0
- package/es-modules/Grid/Pro/Data/DataSourceHelper.js +246 -0
- package/es-modules/Grid/Pro/Data/QuerySerializer.d.ts +46 -0
- package/es-modules/Grid/Pro/Data/QuerySerializer.js +169 -0
- package/es-modules/Grid/Pro/Data/RemoteDataProvider.d.ts +187 -0
- package/es-modules/Grid/Pro/Data/RemoteDataProvider.js +500 -0
- package/es-modules/Grid/Pro/Export/Exporting.js +5 -7
- package/es-modules/Grid/Pro/Export/ExportingComposition.js +4 -5
- package/es-modules/Grid/Pro/GridEvents.d.ts +1 -0
- package/es-modules/Grid/Pro/GridEvents.js +4 -5
- package/es-modules/Grid/Pro/Pagination/PaginationComposition.d.ts +0 -1
- package/es-modules/Grid/Pro/Pagination/PaginationComposition.js +4 -5
- package/es-modules/Grid/index.js +3 -3
- package/es-modules/Shared/BaseForm.js +4 -5
- package/es-modules/Shared/DownloadURL.d.ts +1 -85
- package/es-modules/Shared/DownloadURL.js +15 -13
- package/es-modules/Shared/LangOptionsCore.d.ts +4 -3
- package/es-modules/Shared/TimeBase.d.ts +1 -46
- package/es-modules/Shared/TimeBase.js +11 -10
- package/es-modules/Shared/Types.d.ts +11 -3
- package/es-modules/Shared/Utilities.d.ts +576 -0
- package/es-modules/Shared/Utilities.js +1368 -0
- package/es-modules/masters/grid-pro.src.d.ts +18 -19
- package/es-modules/masters/grid-pro.src.js +24 -9
- package/grid-pro.d.ts +18 -19
- package/grid-pro.js +6 -5
- package/grid-pro.js.map +1 -1
- package/grid-pro.src.d.ts +18 -19
- package/grid-pro.src.js +8132 -4531
- package/package.json +1 -1
- package/es-modules/Grid/Core/Pagination/Icons.d.ts +0 -7
- package/es-modules/Grid/Core/Pagination/Icons.js +0 -7
- package/es-modules/Grid/Pro/highcharts.d.ts +0 -7
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type TableRow from './Body/TableRow';
|
|
2
|
-
import DataTable from '../../../Data/DataTable
|
|
2
|
+
import type DataTable from '../../../Data/DataTable';
|
|
3
|
+
import type { RowId } from '../Data/DataProvider';
|
|
3
4
|
import ColumnResizingMode from './ColumnResizing/ResizingMode.js';
|
|
4
5
|
import Column from './Column.js';
|
|
5
6
|
import TableHeader from './Header/TableHeader.js';
|
|
@@ -13,14 +14,6 @@ declare class Table {
|
|
|
13
14
|
* The data grid instance which the table (viewport) belongs to.
|
|
14
15
|
*/
|
|
15
16
|
readonly grid: Grid;
|
|
16
|
-
/**
|
|
17
|
-
* The presentation version of the data table. It has applied modifiers
|
|
18
|
-
* and is ready to be rendered.
|
|
19
|
-
*
|
|
20
|
-
* If you want to modify the data table, you should use the original
|
|
21
|
-
* instance that is stored in the `grid.dataTable` property.
|
|
22
|
-
*/
|
|
23
|
-
dataTable: DataTable;
|
|
24
17
|
/**
|
|
25
18
|
* The HTML element of the table.
|
|
26
19
|
*/
|
|
@@ -63,6 +56,10 @@ declare class Table {
|
|
|
63
56
|
* The flag that indicates if the table rows are virtualized.
|
|
64
57
|
*/
|
|
65
58
|
virtualRows: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Cell context menu instance (lazy created).
|
|
61
|
+
*/
|
|
62
|
+
private cellContextMenu?;
|
|
66
63
|
/**
|
|
67
64
|
* Constructs a new data grid table.
|
|
68
65
|
*
|
|
@@ -74,9 +71,17 @@ declare class Table {
|
|
|
74
71
|
*/
|
|
75
72
|
constructor(grid: Grid, tableElement: HTMLTableElement);
|
|
76
73
|
/**
|
|
77
|
-
*
|
|
74
|
+
* The presentation version of the data table. It has applied modifiers
|
|
75
|
+
* and is ready to be rendered.
|
|
76
|
+
*
|
|
77
|
+
* @deprecated Use `grid.dataProvider` instead.
|
|
78
|
+
*/
|
|
79
|
+
get dataTable(): DataTable | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* Initializes the table. Should be called after creation so that the table
|
|
82
|
+
* can be asynchronously initialized.
|
|
78
83
|
*/
|
|
79
|
-
|
|
84
|
+
init(): Promise<void>;
|
|
80
85
|
/**
|
|
81
86
|
* Sets the minimum height of the table body.
|
|
82
87
|
*/
|
|
@@ -115,6 +120,57 @@ declare class Table {
|
|
|
115
120
|
* Handles the scroll event.
|
|
116
121
|
*/
|
|
117
122
|
private onScroll;
|
|
123
|
+
/**
|
|
124
|
+
* Delegated click handler for cells.
|
|
125
|
+
* @param e Mouse event
|
|
126
|
+
*/
|
|
127
|
+
private onCellClick;
|
|
128
|
+
/**
|
|
129
|
+
* Delegated double-click handler for cells.
|
|
130
|
+
* @param e Mouse event
|
|
131
|
+
*/
|
|
132
|
+
private onCellDblClick;
|
|
133
|
+
/**
|
|
134
|
+
* Delegated context menu handler for cells.
|
|
135
|
+
* @param e Mouse event
|
|
136
|
+
*/
|
|
137
|
+
private onCellContextMenu;
|
|
138
|
+
/**
|
|
139
|
+
* Delegated mousedown handler for cells.
|
|
140
|
+
* @param e Mouse event
|
|
141
|
+
*/
|
|
142
|
+
private onCellMouseDown;
|
|
143
|
+
/**
|
|
144
|
+
* Delegated mouseover handler for cells.
|
|
145
|
+
* @param e Mouse event
|
|
146
|
+
*/
|
|
147
|
+
private onCellMouseOver;
|
|
148
|
+
/**
|
|
149
|
+
* Delegated mouseout handler for cells.
|
|
150
|
+
* @param e Mouse event
|
|
151
|
+
*/
|
|
152
|
+
private onCellMouseOut;
|
|
153
|
+
/**
|
|
154
|
+
* Delegated keydown handler for cells.
|
|
155
|
+
* @param e Keyboard event
|
|
156
|
+
*/
|
|
157
|
+
private onCellKeyDown;
|
|
158
|
+
/**
|
|
159
|
+
* Opens a cell context menu if configured and enabled.
|
|
160
|
+
*
|
|
161
|
+
* @param tableCell
|
|
162
|
+
* The target cell.
|
|
163
|
+
*
|
|
164
|
+
* @param clientX
|
|
165
|
+
* The viewport X coordinate for anchoring.
|
|
166
|
+
*
|
|
167
|
+
* @param clientY
|
|
168
|
+
* The viewport Y coordinate for anchoring.
|
|
169
|
+
*
|
|
170
|
+
* @returns
|
|
171
|
+
* True if the menu was opened.
|
|
172
|
+
*/
|
|
173
|
+
private openCellContextMenu;
|
|
118
174
|
/**
|
|
119
175
|
* Scrolls the table to the specified row.
|
|
120
176
|
*
|
|
@@ -164,7 +220,7 @@ declare class Table {
|
|
|
164
220
|
* @param id
|
|
165
221
|
* The ID of the row.
|
|
166
222
|
*/
|
|
167
|
-
getRow(id:
|
|
223
|
+
getRow(id: RowId): TableRow | undefined;
|
|
168
224
|
}
|
|
169
225
|
/**
|
|
170
226
|
* Represents the metadata of the viewport state. It is used to save the
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
*
|
|
3
3
|
* Grid Table Viewport class
|
|
4
4
|
*
|
|
5
|
-
* (c) 2020-
|
|
5
|
+
* (c) 2020-2026 Highsoft AS
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* A commercial license may be required depending on use.
|
|
8
|
+
* See www.highcharts.com/license
|
|
8
9
|
*
|
|
9
|
-
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
10
10
|
*
|
|
11
11
|
* Authors:
|
|
12
12
|
* - Dawid Dragula
|
|
@@ -15,15 +15,15 @@
|
|
|
15
15
|
* */
|
|
16
16
|
'use strict';
|
|
17
17
|
import GridUtils from '../GridUtils.js';
|
|
18
|
-
import Utils from '../../../Core/Utilities.js';
|
|
19
18
|
import ColumnResizing from './ColumnResizing/ColumnResizing.js';
|
|
20
19
|
import Column from './Column.js';
|
|
21
20
|
import TableHeader from './Header/TableHeader.js';
|
|
22
21
|
import RowsVirtualizer from './Actions/RowsVirtualizer.js';
|
|
23
22
|
import ColumnsResizer from './Actions/ColumnsResizer.js';
|
|
24
23
|
import Globals from '../Globals.js';
|
|
24
|
+
import { defined, fireEvent, getStyle } from '../../../Shared/Utilities.js';
|
|
25
|
+
import CellContextMenu from './Body/CellContextMenu.js';
|
|
25
26
|
const { makeHTMLElement } = GridUtils;
|
|
26
|
-
const { fireEvent, getStyle, defined } = Utils;
|
|
27
27
|
/* *
|
|
28
28
|
*
|
|
29
29
|
* Class
|
|
@@ -56,6 +56,10 @@ class Table {
|
|
|
56
56
|
* The visible rows of the table.
|
|
57
57
|
*/
|
|
58
58
|
this.rows = [];
|
|
59
|
+
/**
|
|
60
|
+
* The flag that indicates if the table rows are virtualized.
|
|
61
|
+
*/
|
|
62
|
+
this.virtualRows = true;
|
|
59
63
|
/**
|
|
60
64
|
* Handles the focus event on the table body.
|
|
61
65
|
*
|
|
@@ -78,42 +82,126 @@ class Table {
|
|
|
78
82
|
*/
|
|
79
83
|
this.onScroll = () => {
|
|
80
84
|
if (this.virtualRows) {
|
|
81
|
-
this.rowsVirtualizer.scroll();
|
|
85
|
+
void this.rowsVirtualizer.scroll();
|
|
82
86
|
}
|
|
83
87
|
this.header?.scrollHorizontally(this.tbodyElement.scrollLeft);
|
|
84
88
|
};
|
|
89
|
+
/**
|
|
90
|
+
* Delegated click handler for cells.
|
|
91
|
+
* @param e Mouse event
|
|
92
|
+
*/
|
|
93
|
+
this.onCellClick = (e) => {
|
|
94
|
+
const cell = this.getCellFromElement(e.target);
|
|
95
|
+
if (cell) {
|
|
96
|
+
cell
|
|
97
|
+
.onClick(e);
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Delegated double-click handler for cells.
|
|
102
|
+
* @param e Mouse event
|
|
103
|
+
*/
|
|
104
|
+
this.onCellDblClick = (e) => {
|
|
105
|
+
const cell = this.getCellFromElement(e.target);
|
|
106
|
+
if (cell && 'onDblClick' in cell) {
|
|
107
|
+
cell.onDblClick(e);
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Delegated context menu handler for cells.
|
|
112
|
+
* @param e Mouse event
|
|
113
|
+
*/
|
|
114
|
+
this.onCellContextMenu = (e) => {
|
|
115
|
+
const cell = this.getCellFromElement(e.target);
|
|
116
|
+
if (!cell || !('column' in cell) || !('row' in cell)) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const tableCell = cell;
|
|
120
|
+
if (this.openCellContextMenu(tableCell, e.clientX, e.clientY)) {
|
|
121
|
+
e.preventDefault();
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Delegated mousedown handler for cells.
|
|
126
|
+
* @param e Mouse event
|
|
127
|
+
*/
|
|
128
|
+
this.onCellMouseDown = (e) => {
|
|
129
|
+
const cell = this.getCellFromElement(e.target);
|
|
130
|
+
if (cell && 'onMouseDown' in cell) {
|
|
131
|
+
cell.onMouseDown(e);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* Delegated mouseover handler for cells.
|
|
136
|
+
* @param e Mouse event
|
|
137
|
+
*/
|
|
138
|
+
this.onCellMouseOver = (e) => {
|
|
139
|
+
const cell = this.getCellFromElement(e.target);
|
|
140
|
+
if (cell) {
|
|
141
|
+
cell.onMouseOver();
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* Delegated mouseout handler for cells.
|
|
146
|
+
* @param e Mouse event
|
|
147
|
+
*/
|
|
148
|
+
this.onCellMouseOut = (e) => {
|
|
149
|
+
const cell = this.getCellFromElement(e.target);
|
|
150
|
+
if (cell) {
|
|
151
|
+
cell.onMouseOut();
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Delegated keydown handler for cells.
|
|
156
|
+
* @param e Keyboard event
|
|
157
|
+
*/
|
|
158
|
+
this.onCellKeyDown = (e) => {
|
|
159
|
+
const cell = this.getCellFromElement(e.target);
|
|
160
|
+
if (!cell) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
// Disabled until meaningful functionality is ready.
|
|
164
|
+
// const isContextMenuKey = (
|
|
165
|
+
// e.key === 'ContextMenu' || (e.key === 'F10' && e.shiftKey)
|
|
166
|
+
// );
|
|
167
|
+
// if (isContextMenuKey && 'column' in cell && 'row' in cell) {
|
|
168
|
+
// const tableCell = cell as TableCell;
|
|
169
|
+
// const rect = tableCell.htmlElement.getBoundingClientRect();
|
|
170
|
+
// const opened = this.openCellContextMenu(
|
|
171
|
+
// tableCell,
|
|
172
|
+
// rect.left + 4,
|
|
173
|
+
// rect.bottom - 2
|
|
174
|
+
// );
|
|
175
|
+
// if (opened) {
|
|
176
|
+
// e.preventDefault();
|
|
177
|
+
// e.stopPropagation();
|
|
178
|
+
// return;
|
|
179
|
+
// }
|
|
180
|
+
// }
|
|
181
|
+
cell.onKeyDown(e);
|
|
182
|
+
};
|
|
85
183
|
this.grid = grid;
|
|
86
184
|
this.tableElement = tableElement;
|
|
87
|
-
this.dataTable = this.grid.presentationTable;
|
|
88
|
-
const dgOptions = grid.options;
|
|
89
|
-
const customClassName = dgOptions?.rendering?.table?.className;
|
|
90
185
|
this.columnResizing = ColumnResizing.initMode(this);
|
|
91
|
-
|
|
92
|
-
if (dgOptions?.rendering?.header?.enabled) {
|
|
186
|
+
if (grid.options?.rendering?.header?.enabled) {
|
|
93
187
|
this.theadElement = makeHTMLElement('thead', {}, tableElement);
|
|
94
188
|
}
|
|
95
189
|
this.tbodyElement = makeHTMLElement('tbody', {}, tableElement);
|
|
96
|
-
if (this.virtualRows) {
|
|
97
|
-
tableElement.classList.add(Globals.getClassName('virtualization'));
|
|
98
|
-
}
|
|
99
|
-
if (dgOptions?.rendering?.columns?.resizing?.enabled) {
|
|
100
|
-
this.columnsResizer = new ColumnsResizer(this);
|
|
101
|
-
}
|
|
102
|
-
if (customClassName) {
|
|
103
|
-
tableElement.classList.add(...customClassName.split(/\s+/g));
|
|
104
|
-
}
|
|
105
|
-
tableElement.classList.add(Globals.getClassName('scrollableContent'));
|
|
106
|
-
// Load columns
|
|
107
|
-
this.loadColumns();
|
|
108
|
-
// Virtualization
|
|
109
190
|
this.rowsVirtualizer = new RowsVirtualizer(this);
|
|
110
|
-
|
|
111
|
-
this.init();
|
|
191
|
+
fireEvent(this, 'beforeInit');
|
|
112
192
|
// Add event listeners
|
|
113
193
|
this.resizeObserver = new ResizeObserver(this.onResize);
|
|
114
194
|
this.resizeObserver.observe(tableElement);
|
|
115
195
|
this.tbodyElement.addEventListener('scroll', this.onScroll);
|
|
116
196
|
this.tbodyElement.addEventListener('focus', this.onTBodyFocus);
|
|
197
|
+
// Delegated cell events
|
|
198
|
+
this.tbodyElement.addEventListener('click', this.onCellClick);
|
|
199
|
+
this.tbodyElement.addEventListener('dblclick', this.onCellDblClick);
|
|
200
|
+
this.tbodyElement.addEventListener('contextmenu', this.onCellContextMenu);
|
|
201
|
+
this.tbodyElement.addEventListener('mousedown', this.onCellMouseDown);
|
|
202
|
+
this.tbodyElement.addEventListener('mouseover', this.onCellMouseOver);
|
|
203
|
+
this.tbodyElement.addEventListener('mouseout', this.onCellMouseOut);
|
|
204
|
+
this.tbodyElement.addEventListener('keydown', this.onCellKeyDown);
|
|
117
205
|
}
|
|
118
206
|
/* *
|
|
119
207
|
*
|
|
@@ -121,21 +209,55 @@ class Table {
|
|
|
121
209
|
*
|
|
122
210
|
* */
|
|
123
211
|
/**
|
|
124
|
-
*
|
|
212
|
+
* The presentation version of the data table. It has applied modifiers
|
|
213
|
+
* and is ready to be rendered.
|
|
214
|
+
*
|
|
215
|
+
* @deprecated Use `grid.dataProvider` instead.
|
|
125
216
|
*/
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
217
|
+
get dataTable() {
|
|
218
|
+
const dp = this.grid.dataProvider;
|
|
219
|
+
if (dp && 'getDataTable' in dp) {
|
|
220
|
+
return dp.getDataTable(true);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Initializes the table. Should be called after creation so that the table
|
|
225
|
+
* can be asynchronously initialized.
|
|
226
|
+
*/
|
|
227
|
+
async init() {
|
|
228
|
+
try {
|
|
229
|
+
this.grid.showLoading();
|
|
230
|
+
const { tableElement } = this;
|
|
231
|
+
const renderingOptions = this.grid.options?.rendering;
|
|
232
|
+
const customClassName = renderingOptions?.table?.className;
|
|
233
|
+
this.virtualRows = await this.shouldVirtualizeRows();
|
|
234
|
+
if (this.virtualRows) {
|
|
235
|
+
tableElement.classList.add(Globals.getClassName('virtualization'));
|
|
236
|
+
}
|
|
237
|
+
if (renderingOptions?.columns?.resizing?.enabled) {
|
|
238
|
+
this.columnsResizer = new ColumnsResizer(this);
|
|
239
|
+
}
|
|
240
|
+
if (customClassName) {
|
|
241
|
+
tableElement.classList.add(...customClassName.split(/\s+/g));
|
|
242
|
+
}
|
|
243
|
+
tableElement.classList.add(Globals.getClassName('scrollableContent'));
|
|
244
|
+
await this.loadColumns();
|
|
245
|
+
this.setTbodyMinHeight();
|
|
246
|
+
// Load & render head
|
|
247
|
+
if (this.grid.options?.rendering?.header?.enabled) {
|
|
248
|
+
this.header = new TableHeader(this);
|
|
249
|
+
await this.header.render();
|
|
250
|
+
}
|
|
251
|
+
// TODO(footer): Load & render footer
|
|
252
|
+
// this.footer = new TableFooter(this);
|
|
253
|
+
// this.footer.render();
|
|
254
|
+
await this.rowsVirtualizer.initialRender();
|
|
255
|
+
}
|
|
256
|
+
finally {
|
|
257
|
+
fireEvent(this, 'afterInit');
|
|
258
|
+
this.reflow();
|
|
259
|
+
this.grid.hideLoading();
|
|
133
260
|
}
|
|
134
|
-
// TODO: Load & render footer
|
|
135
|
-
// this.footer = new TableFooter(this);
|
|
136
|
-
// this.footer.render();
|
|
137
|
-
this.rowsVirtualizer.initialRender();
|
|
138
|
-
fireEvent(this, 'afterInit');
|
|
139
261
|
}
|
|
140
262
|
/**
|
|
141
263
|
* Sets the minimum height of the table body.
|
|
@@ -155,7 +277,7 @@ class Table {
|
|
|
155
277
|
* @returns
|
|
156
278
|
* Whether rows virtualization should be enabled.
|
|
157
279
|
*/
|
|
158
|
-
shouldVirtualizeRows() {
|
|
280
|
+
async shouldVirtualizeRows() {
|
|
159
281
|
const { grid } = this;
|
|
160
282
|
const rows = grid.userOptions.rendering?.rows;
|
|
161
283
|
if (defined(rows?.virtualization)) {
|
|
@@ -163,7 +285,7 @@ class Table {
|
|
|
163
285
|
}
|
|
164
286
|
// Consider changing this to use the presentation table row count
|
|
165
287
|
// instead of the original data table row count.
|
|
166
|
-
const rowCount =
|
|
288
|
+
const rowCount = (await this.grid.dataProvider?.getRowCount()) ?? 0;
|
|
167
289
|
const threshold = rows?.virtualizationThreshold ?? 50;
|
|
168
290
|
if (grid.pagination) {
|
|
169
291
|
return grid.querying.pagination.currentPageSize >= threshold;
|
|
@@ -173,7 +295,7 @@ class Table {
|
|
|
173
295
|
/**
|
|
174
296
|
* Loads the columns of the table.
|
|
175
297
|
*/
|
|
176
|
-
loadColumns() {
|
|
298
|
+
async loadColumns() {
|
|
177
299
|
const { enabledColumns } = this.grid;
|
|
178
300
|
if (!enabledColumns) {
|
|
179
301
|
return;
|
|
@@ -181,7 +303,9 @@ class Table {
|
|
|
181
303
|
let columnId;
|
|
182
304
|
for (let i = 0, iEnd = enabledColumns.length; i < iEnd; ++i) {
|
|
183
305
|
columnId = enabledColumns[i];
|
|
184
|
-
|
|
306
|
+
const column = new Column(this, columnId, i);
|
|
307
|
+
await column.init();
|
|
308
|
+
this.columns.push(column);
|
|
185
309
|
}
|
|
186
310
|
this.columnResizing.loadColumns();
|
|
187
311
|
}
|
|
@@ -190,53 +314,52 @@ class Table {
|
|
|
190
314
|
*/
|
|
191
315
|
async updateRows() {
|
|
192
316
|
const vp = this;
|
|
193
|
-
|
|
194
|
-
if (
|
|
195
|
-
|
|
317
|
+
const { dataProvider: dp } = vp.grid;
|
|
318
|
+
if (!dp) {
|
|
319
|
+
return;
|
|
196
320
|
}
|
|
197
321
|
vp.grid.querying.pagination.clampPage();
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
let shouldRerender = false;
|
|
208
|
-
if (this.virtualRows !== shouldVirtualize) {
|
|
209
|
-
this.virtualRows = shouldVirtualize;
|
|
210
|
-
vp.tableElement.classList.toggle(Globals.getClassName('virtualization'), shouldVirtualize);
|
|
211
|
-
shouldRerender = true;
|
|
212
|
-
}
|
|
213
|
-
if (shouldRerender || oldRowsCount !== vp.dataTable.rowCount) {
|
|
214
|
-
// Rerender all rows
|
|
215
|
-
vp.rowsVirtualizer.rerender();
|
|
216
|
-
}
|
|
217
|
-
else {
|
|
218
|
-
// Update existing rows
|
|
219
|
-
for (let i = 0, iEnd = vp.rows.length; i < iEnd; ++i) {
|
|
220
|
-
vp.rows[i].update();
|
|
322
|
+
try {
|
|
323
|
+
this.grid.showLoading();
|
|
324
|
+
// Update data
|
|
325
|
+
const oldRowsCount = vp.rows.length > 0 ?
|
|
326
|
+
(vp.rows[vp.rows.length - 1]?.index ?? -1) + 1 :
|
|
327
|
+
0;
|
|
328
|
+
await vp.grid.querying.proceed();
|
|
329
|
+
for (const column of vp.columns) {
|
|
330
|
+
column.loadData();
|
|
221
331
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
//
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
332
|
+
// Update virtualization if needed
|
|
333
|
+
const shouldVirtualize = await this.shouldVirtualizeRows();
|
|
334
|
+
let shouldRerender = false;
|
|
335
|
+
if (this.virtualRows !== shouldVirtualize) {
|
|
336
|
+
this.virtualRows = shouldVirtualize;
|
|
337
|
+
vp.tableElement.classList.toggle(Globals.getClassName('virtualization'), shouldVirtualize);
|
|
338
|
+
shouldRerender = true;
|
|
339
|
+
}
|
|
340
|
+
const newRowCount = await dp.getRowCount();
|
|
341
|
+
if (shouldRerender) {
|
|
342
|
+
// Rerender all rows
|
|
343
|
+
await vp.rowsVirtualizer.rerender();
|
|
344
|
+
}
|
|
345
|
+
else if (oldRowsCount !== newRowCount) {
|
|
346
|
+
// Refresh rows without full teardown
|
|
347
|
+
await vp.rowsVirtualizer.refreshRows();
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
// Update existing rows - create a snapshot to avoid issues
|
|
351
|
+
// if array changes during iteration
|
|
352
|
+
const rowsToUpdate = [...vp.rows];
|
|
353
|
+
for (let i = 0, iEnd = rowsToUpdate.length; i < iEnd; ++i) {
|
|
354
|
+
await rowsToUpdate[i].update();
|
|
355
|
+
}
|
|
239
356
|
}
|
|
357
|
+
// Update the pagination controls
|
|
358
|
+
vp.grid.pagination?.updateControls();
|
|
359
|
+
vp.reflow();
|
|
360
|
+
}
|
|
361
|
+
finally {
|
|
362
|
+
this.grid.hideLoading();
|
|
240
363
|
}
|
|
241
364
|
vp.grid.dirtyFlags.delete('rows');
|
|
242
365
|
}
|
|
@@ -244,8 +367,6 @@ class Table {
|
|
|
244
367
|
* Reflows the table's content dimensions.
|
|
245
368
|
*/
|
|
246
369
|
reflow() {
|
|
247
|
-
// TODO: More `needsReflow` logic can be added in the future to avoid
|
|
248
|
-
// unnecessary reflows of the table parts.
|
|
249
370
|
this.columnResizing.reflow();
|
|
250
371
|
// Reflow the head
|
|
251
372
|
this.header?.reflow();
|
|
@@ -259,6 +380,46 @@ class Table {
|
|
|
259
380
|
});
|
|
260
381
|
this.grid.dirtyFlags.delete('reflow');
|
|
261
382
|
}
|
|
383
|
+
/**
|
|
384
|
+
* Opens a cell context menu if configured and enabled.
|
|
385
|
+
*
|
|
386
|
+
* @param tableCell
|
|
387
|
+
* The target cell.
|
|
388
|
+
*
|
|
389
|
+
* @param clientX
|
|
390
|
+
* The viewport X coordinate for anchoring.
|
|
391
|
+
*
|
|
392
|
+
* @param clientY
|
|
393
|
+
* The viewport Y coordinate for anchoring.
|
|
394
|
+
*
|
|
395
|
+
* @returns
|
|
396
|
+
* True if the menu was opened.
|
|
397
|
+
*/
|
|
398
|
+
openCellContextMenu(tableCell, clientX, clientY) {
|
|
399
|
+
const options = tableCell.column?.options.cells?.contextMenu;
|
|
400
|
+
if (options?.enabled === false) {
|
|
401
|
+
return false;
|
|
402
|
+
}
|
|
403
|
+
const items = options?.items || [];
|
|
404
|
+
if (!items.length) {
|
|
405
|
+
return false; // Keep native browser menu
|
|
406
|
+
}
|
|
407
|
+
if (!this.cellContextMenu) {
|
|
408
|
+
this.cellContextMenu = new CellContextMenu(this.grid);
|
|
409
|
+
}
|
|
410
|
+
// Close any existing popups before opening a new menu.
|
|
411
|
+
// Copy to array to avoid mutation during iteration.
|
|
412
|
+
for (const popup of Array.from(this.grid.popups)) {
|
|
413
|
+
if (popup !== this.cellContextMenu) {
|
|
414
|
+
popup.hide();
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
if (this.cellContextMenu.isVisible) {
|
|
418
|
+
this.cellContextMenu.hide();
|
|
419
|
+
}
|
|
420
|
+
this.cellContextMenu.showAt(tableCell, clientX, clientY);
|
|
421
|
+
return true;
|
|
422
|
+
}
|
|
262
423
|
/**
|
|
263
424
|
* Scrolls the table to the specified row.
|
|
264
425
|
*
|
|
@@ -309,17 +470,63 @@ class Table {
|
|
|
309
470
|
getWidthFromRatio(ratio) {
|
|
310
471
|
return this.tbodyElement.clientWidth * ratio;
|
|
311
472
|
}
|
|
473
|
+
/**
|
|
474
|
+
* Finds a cell from a DOM element within the table body.
|
|
475
|
+
*
|
|
476
|
+
* @param element
|
|
477
|
+
* The DOM element to find the cell for (typically event.target).
|
|
478
|
+
*
|
|
479
|
+
* @returns
|
|
480
|
+
* The Cell instance or undefined if not found.
|
|
481
|
+
*
|
|
482
|
+
* @internal
|
|
483
|
+
*/
|
|
484
|
+
getCellFromElement(element) {
|
|
485
|
+
if (!(element instanceof Element)) {
|
|
486
|
+
return;
|
|
487
|
+
}
|
|
488
|
+
const td = element.closest('td');
|
|
489
|
+
if (!td) {
|
|
490
|
+
return;
|
|
491
|
+
}
|
|
492
|
+
const tr = td.parentElement;
|
|
493
|
+
if (!tr) {
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
const rowIndexAttr = tr.getAttribute('data-row-index');
|
|
497
|
+
if (rowIndexAttr === null) {
|
|
498
|
+
return;
|
|
499
|
+
}
|
|
500
|
+
const rowIndex = parseInt(rowIndexAttr, 10);
|
|
501
|
+
const firstRowIndex = this.rows[0]?.index ?? 0;
|
|
502
|
+
const row = this.rows[rowIndex - firstRowIndex];
|
|
503
|
+
if (!row) {
|
|
504
|
+
return;
|
|
505
|
+
}
|
|
506
|
+
// Find cell index by position in row
|
|
507
|
+
const cellIndex = Array.prototype.indexOf.call(tr.children, td);
|
|
508
|
+
return row.cells[cellIndex];
|
|
509
|
+
}
|
|
312
510
|
/**
|
|
313
511
|
* Destroys the grid table.
|
|
314
512
|
*/
|
|
315
513
|
destroy() {
|
|
316
514
|
this.tbodyElement.removeEventListener('focus', this.onTBodyFocus);
|
|
317
515
|
this.tbodyElement.removeEventListener('scroll', this.onScroll);
|
|
516
|
+
this.tbodyElement.removeEventListener('click', this.onCellClick);
|
|
517
|
+
this.tbodyElement.removeEventListener('dblclick', this.onCellDblClick);
|
|
518
|
+
this.tbodyElement.removeEventListener('contextmenu', this.onCellContextMenu);
|
|
519
|
+
this.tbodyElement.removeEventListener('mousedown', this.onCellMouseDown);
|
|
520
|
+
this.tbodyElement.removeEventListener('mouseover', this.onCellMouseOver);
|
|
521
|
+
this.tbodyElement.removeEventListener('mouseout', this.onCellMouseOut);
|
|
522
|
+
this.tbodyElement.removeEventListener('keydown', this.onCellKeyDown);
|
|
318
523
|
this.resizeObserver.disconnect();
|
|
319
524
|
this.columnsResizer?.removeEventListeners();
|
|
320
525
|
this.header?.destroy();
|
|
526
|
+
this.cellContextMenu?.hide();
|
|
527
|
+
delete this.cellContextMenu;
|
|
321
528
|
for (let i = 0, iEnd = this.rows.length; i < iEnd; ++i) {
|
|
322
|
-
this.rows[i]
|
|
529
|
+
this.rows[i]?.destroy();
|
|
323
530
|
}
|
|
324
531
|
fireEvent(this, 'afterDestroy');
|
|
325
532
|
}
|
|
@@ -389,9 +596,6 @@ class Table {
|
|
|
389
596
|
* The ID of the row.
|
|
390
597
|
*/
|
|
391
598
|
getRow(id) {
|
|
392
|
-
// TODO: Change `find` to a method using `vp.dataTable.getLocalRowIndex`
|
|
393
|
-
// and rows[presentationRowIndex - firstRowIndex]. Needs more testing,
|
|
394
|
-
// but it should be faster.
|
|
395
599
|
return this.rows.find((row) => row.id === id);
|
|
396
600
|
}
|
|
397
601
|
}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
*
|
|
3
3
|
* Grid Button interface
|
|
4
4
|
*
|
|
5
|
-
* (c) 2020-
|
|
5
|
+
* (c) 2020-2026 Highsoft AS
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* A commercial license may be required depending on use.
|
|
8
|
+
* See www.highcharts.com/license
|
|
8
9
|
*
|
|
9
|
-
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
10
10
|
*
|
|
11
11
|
* Authors:
|
|
12
12
|
* - Dawid Dragula
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
*
|
|
3
3
|
* Grid Context Menu abstract class
|
|
4
4
|
*
|
|
5
|
-
* (c) 2020-
|
|
5
|
+
* (c) 2020-2026 Highsoft AS
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* A commercial license may be required depending on use.
|
|
8
|
+
* See www.highcharts.com/license
|
|
8
9
|
*
|
|
9
|
-
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
10
10
|
*
|
|
11
11
|
* Authors:
|
|
12
12
|
* - Dawid Dragula
|