@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
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type TableCell from './TableCell';
|
|
2
|
+
import ContextMenu from '../../UI/ContextMenu.js';
|
|
3
|
+
declare class CellContextMenu extends ContextMenu {
|
|
4
|
+
cell?: TableCell;
|
|
5
|
+
private cursorAnchorElement?;
|
|
6
|
+
private removeCellOutdateListener?;
|
|
7
|
+
showAt(cell: TableCell, clientX: number, clientY: number): void;
|
|
8
|
+
hide(): void;
|
|
9
|
+
protected renderContent(): void;
|
|
10
|
+
}
|
|
11
|
+
export default CellContextMenu;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/* *
|
|
2
|
+
*
|
|
3
|
+
* Grid Cell Context Menu
|
|
4
|
+
*
|
|
5
|
+
* (c) 2020-2026 Highsoft AS
|
|
6
|
+
*
|
|
7
|
+
* A commercial license may be required depending on use.
|
|
8
|
+
* See www.highcharts.com/license
|
|
9
|
+
*
|
|
10
|
+
* Authors:
|
|
11
|
+
* - Mikkel Espolin Birkeland
|
|
12
|
+
*
|
|
13
|
+
* */
|
|
14
|
+
'use strict';
|
|
15
|
+
import ContextMenu from '../../UI/ContextMenu.js';
|
|
16
|
+
import ContextMenuButton from '../../UI/ContextMenuButton.js';
|
|
17
|
+
import { addEvent } from '../../../../Shared/Utilities.js';
|
|
18
|
+
/* *
|
|
19
|
+
*
|
|
20
|
+
* Class
|
|
21
|
+
*
|
|
22
|
+
* */
|
|
23
|
+
class CellContextMenu extends ContextMenu {
|
|
24
|
+
showAt(cell, clientX, clientY) {
|
|
25
|
+
const wrapper = this.grid.contentWrapper;
|
|
26
|
+
if (!wrapper) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this.cell = cell;
|
|
30
|
+
this.removeCellOutdateListener?.();
|
|
31
|
+
this.removeCellOutdateListener = addEvent(cell, 'outdate', () => {
|
|
32
|
+
this.hide();
|
|
33
|
+
delete this.cell;
|
|
34
|
+
});
|
|
35
|
+
const rect = wrapper.getBoundingClientRect();
|
|
36
|
+
this.cursorAnchorElement = document.createElement('div');
|
|
37
|
+
this.cursorAnchorElement.style.position = 'absolute';
|
|
38
|
+
this.cursorAnchorElement.style.left = (clientX - rect.left) + 'px';
|
|
39
|
+
this.cursorAnchorElement.style.top = (clientY - rect.top) + 'px';
|
|
40
|
+
this.cursorAnchorElement.style.width = '0px';
|
|
41
|
+
this.cursorAnchorElement.style.height = '0px';
|
|
42
|
+
this.cursorAnchorElement.style.pointerEvents = 'none';
|
|
43
|
+
wrapper.appendChild(this.cursorAnchorElement);
|
|
44
|
+
super.show(this.cursorAnchorElement);
|
|
45
|
+
}
|
|
46
|
+
hide() {
|
|
47
|
+
super.hide();
|
|
48
|
+
this.cursorAnchorElement?.remove();
|
|
49
|
+
this.removeCellOutdateListener?.();
|
|
50
|
+
delete this.cursorAnchorElement;
|
|
51
|
+
delete this.removeCellOutdateListener;
|
|
52
|
+
}
|
|
53
|
+
renderContent() {
|
|
54
|
+
const { cell } = this;
|
|
55
|
+
if (!cell) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const items = cell.column?.options.cells?.contextMenu?.items || [];
|
|
59
|
+
for (const item of items) {
|
|
60
|
+
if (item.separator) {
|
|
61
|
+
this.addDivider();
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const btn = new ContextMenuButton({
|
|
65
|
+
label: item.label,
|
|
66
|
+
icon: item.icon,
|
|
67
|
+
onClick: () => {
|
|
68
|
+
if (item.disabled) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
item.onClick?.call(cell, cell);
|
|
72
|
+
this.hide();
|
|
73
|
+
}
|
|
74
|
+
}).add(this);
|
|
75
|
+
if (btn && item.disabled) {
|
|
76
|
+
// Minimal disable support for v1. We don't currently have a
|
|
77
|
+
// dedicated ContextMenuButton API for disabled state.
|
|
78
|
+
// This keeps behavior consistent without introducing new CSS.
|
|
79
|
+
btn.wrapper?.querySelector('button')?.setAttribute('disabled', '');
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export default CellContextMenu;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { CellType as DataTableCellType } from '../../../../Data/DataTable';
|
|
2
2
|
import type Column from '../Column';
|
|
3
3
|
import type TableRow from './TableRow';
|
|
4
4
|
import Cell from '../Cell.js';
|
|
@@ -19,6 +19,16 @@ declare class TableCell extends Cell {
|
|
|
19
19
|
* The cell's content.
|
|
20
20
|
*/
|
|
21
21
|
content?: CellContent;
|
|
22
|
+
/**
|
|
23
|
+
* A token used to prevent stale async responses from overwriting cell
|
|
24
|
+
* data. In virtualized grids, cells are reused as rows scroll in/out of
|
|
25
|
+
* view. If a cell starts an async value fetch for row A, then gets reused
|
|
26
|
+
* for row B before the fetch completes, the stale response for row A
|
|
27
|
+
* could incorrectly overwrite row B's data. This token is incremented
|
|
28
|
+
* before each async fetch, and checked when the fetch completes - if the
|
|
29
|
+
* token has changed, the response is discarded as stale.
|
|
30
|
+
*/
|
|
31
|
+
private asyncFetchToken;
|
|
22
32
|
/**
|
|
23
33
|
* Constructs a cell in the data grid.
|
|
24
34
|
*
|
|
@@ -32,15 +42,15 @@ declare class TableCell extends Cell {
|
|
|
32
42
|
/**
|
|
33
43
|
* Renders the cell by appending it to the row and setting its value.
|
|
34
44
|
*/
|
|
35
|
-
render(): void
|
|
45
|
+
render(): Promise<void>;
|
|
36
46
|
/**
|
|
37
|
-
* Edits the cell value and updates the
|
|
47
|
+
* Edits the cell value and updates the dataset. Call this instead of
|
|
38
48
|
* `setValue` when you want it to trigger the cell value user change event.
|
|
39
49
|
*
|
|
40
50
|
* @param value
|
|
41
51
|
* The new value to set.
|
|
42
52
|
*/
|
|
43
|
-
editValue(value:
|
|
53
|
+
editValue(value: DataTableCellType): Promise<void>;
|
|
44
54
|
/**
|
|
45
55
|
* Sets the cell value and updates its content with it.
|
|
46
56
|
*
|
|
@@ -48,28 +58,39 @@ declare class TableCell extends Cell {
|
|
|
48
58
|
* The raw value to set. If not provided, it will use the value from the
|
|
49
59
|
* data table for the current row and column.
|
|
50
60
|
*
|
|
51
|
-
* @param
|
|
52
|
-
* Whether to update the
|
|
53
|
-
* `false`, meaning the
|
|
61
|
+
* @param updateDataset
|
|
62
|
+
* Whether to update the dataset after setting the content. Defaults to
|
|
63
|
+
* `false`, meaning the dataset will not be updated.
|
|
64
|
+
*/
|
|
65
|
+
setValue(value?: DataTableCellType, updateDataset?: boolean): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Returns merged styles from defaults and current column options.
|
|
54
68
|
*/
|
|
55
|
-
|
|
69
|
+
private getCellStyles;
|
|
56
70
|
/**
|
|
57
|
-
* Updates the the
|
|
58
|
-
*
|
|
71
|
+
* Updates the the dataset so that it reflects the current state of the
|
|
72
|
+
* grid.
|
|
59
73
|
*
|
|
60
74
|
* @returns
|
|
61
75
|
* A promise that resolves to `true` if the cell triggered all the whole
|
|
62
|
-
* viewport rows to be updated, or `false` if the only change
|
|
63
|
-
*
|
|
76
|
+
* viewport rows to be updated, or `false` if the only change was the cell's
|
|
77
|
+
* content.
|
|
78
|
+
*/
|
|
79
|
+
private updateDataset;
|
|
80
|
+
/**
|
|
81
|
+
* Initialize event listeners for table body cells.
|
|
82
|
+
*
|
|
83
|
+
* Most events (click, dblclick, keydown, mousedown, mouseover, mouseout)
|
|
84
|
+
* are delegated to Table for better performance with virtualization.
|
|
85
|
+
* Only focus/blur remain on individual cells for focus management.
|
|
64
86
|
*/
|
|
65
|
-
private updateDataTable;
|
|
66
87
|
initEvents(): void;
|
|
67
88
|
/**
|
|
68
89
|
* Handles the focus event on the cell.
|
|
69
90
|
*/
|
|
70
91
|
protected onFocus(): void;
|
|
71
|
-
|
|
72
|
-
|
|
92
|
+
onMouseOver(): void;
|
|
93
|
+
onMouseOut(): void;
|
|
73
94
|
/**
|
|
74
95
|
* Handles the double click event on the cell.
|
|
75
96
|
*
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
*
|
|
3
3
|
* Grid 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
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
'use strict';
|
|
17
17
|
import Globals from '../../Globals.js';
|
|
18
18
|
import Cell from '../Cell.js';
|
|
19
|
-
import
|
|
20
|
-
|
|
19
|
+
import { defined, fireEvent } from '../../../../Shared/Utilities.js';
|
|
20
|
+
import { mergeStyleValues } from '../../GridUtils.js';
|
|
21
21
|
/* *
|
|
22
22
|
*
|
|
23
23
|
* Class
|
|
@@ -43,6 +43,16 @@ class TableCell extends Cell {
|
|
|
43
43
|
*/
|
|
44
44
|
constructor(row, column) {
|
|
45
45
|
super(row, column);
|
|
46
|
+
/**
|
|
47
|
+
* A token used to prevent stale async responses from overwriting cell
|
|
48
|
+
* data. In virtualized grids, cells are reused as rows scroll in/out of
|
|
49
|
+
* view. If a cell starts an async value fetch for row A, then gets reused
|
|
50
|
+
* for row B before the fetch completes, the stale response for row A
|
|
51
|
+
* could incorrectly overwrite row B's data. This token is incremented
|
|
52
|
+
* before each async fetch, and checked when the fetch completes - if the
|
|
53
|
+
* token has changed, the response is discarded as stale.
|
|
54
|
+
*/
|
|
55
|
+
this.asyncFetchToken = 0;
|
|
46
56
|
this.column = column;
|
|
47
57
|
this.row = row;
|
|
48
58
|
this.column.registerCell(this);
|
|
@@ -55,12 +65,12 @@ class TableCell extends Cell {
|
|
|
55
65
|
/**
|
|
56
66
|
* Renders the cell by appending it to the row and setting its value.
|
|
57
67
|
*/
|
|
58
|
-
render() {
|
|
59
|
-
super.render();
|
|
60
|
-
|
|
68
|
+
async render() {
|
|
69
|
+
await super.render();
|
|
70
|
+
await this.setValue();
|
|
61
71
|
}
|
|
62
72
|
/**
|
|
63
|
-
* Edits the cell value and updates the
|
|
73
|
+
* Edits the cell value and updates the dataset. Call this instead of
|
|
64
74
|
* `setValue` when you want it to trigger the cell value user change event.
|
|
65
75
|
*
|
|
66
76
|
* @param value
|
|
@@ -81,14 +91,40 @@ class TableCell extends Cell {
|
|
|
81
91
|
* The raw value to set. If not provided, it will use the value from the
|
|
82
92
|
* data table for the current row and column.
|
|
83
93
|
*
|
|
84
|
-
* @param
|
|
85
|
-
* Whether to update the
|
|
86
|
-
* `false`, meaning the
|
|
94
|
+
* @param updateDataset
|
|
95
|
+
* Whether to update the dataset after setting the content. Defaults to
|
|
96
|
+
* `false`, meaning the dataset will not be updated.
|
|
87
97
|
*/
|
|
88
|
-
async setValue(value
|
|
98
|
+
async setValue(value, updateDataset = false) {
|
|
99
|
+
const fetchToken = ++this.asyncFetchToken;
|
|
100
|
+
const { grid } = this.column.viewport;
|
|
101
|
+
// TODO(design): Design a better way to show the cell val being updated.
|
|
102
|
+
this.htmlElement.style.opacity = '0.5';
|
|
103
|
+
if (!defined(value)) {
|
|
104
|
+
value = await grid.dataProvider?.getValue(this.column.id, this.row.index);
|
|
105
|
+
// Discard stale response if cell was reused for a different row
|
|
106
|
+
if (fetchToken !== this.asyncFetchToken) {
|
|
107
|
+
this.htmlElement.style.opacity = '';
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const oldValue = this.value;
|
|
89
112
|
this.value = value;
|
|
90
|
-
if (
|
|
91
|
-
|
|
113
|
+
if (updateDataset) {
|
|
114
|
+
try {
|
|
115
|
+
grid.showLoading();
|
|
116
|
+
if (await this.updateDataset()) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch (err) {
|
|
121
|
+
// eslint-disable-next-line no-console
|
|
122
|
+
console.error(err);
|
|
123
|
+
this.value = oldValue;
|
|
124
|
+
}
|
|
125
|
+
finally {
|
|
126
|
+
grid.hideLoading();
|
|
127
|
+
}
|
|
92
128
|
}
|
|
93
129
|
if (this.content) {
|
|
94
130
|
this.content.update();
|
|
@@ -101,44 +137,64 @@ class TableCell extends Cell {
|
|
|
101
137
|
this.htmlElement.classList[this.column.dataType === 'number' ? 'add' : 'remove'](Globals.getClassName('rightAlign'));
|
|
102
138
|
// Add custom class name from column options
|
|
103
139
|
this.setCustomClassName(this.column.options.cells?.className);
|
|
140
|
+
this.setCustomStyles(this.getCellStyles());
|
|
141
|
+
// TODO(design): Remove this after the first part was implemented.
|
|
142
|
+
this.htmlElement.style.opacity = '';
|
|
104
143
|
fireEvent(this, 'afterRender', { target: this });
|
|
105
144
|
}
|
|
106
145
|
/**
|
|
107
|
-
*
|
|
108
|
-
|
|
146
|
+
* Returns merged styles from defaults and current column options.
|
|
147
|
+
*/
|
|
148
|
+
getCellStyles() {
|
|
149
|
+
const { grid } = this.column.viewport;
|
|
150
|
+
const rawColumnOptions = grid.columnOptionsMap?.[this.column.id]?.options;
|
|
151
|
+
return {
|
|
152
|
+
...mergeStyleValues(this.column, grid.options?.columnDefaults?.style, rawColumnOptions?.style),
|
|
153
|
+
...mergeStyleValues(this, grid.options?.columnDefaults?.cells?.style, rawColumnOptions?.cells?.style)
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Updates the the dataset so that it reflects the current state of the
|
|
158
|
+
* grid.
|
|
109
159
|
*
|
|
110
160
|
* @returns
|
|
111
161
|
* A promise that resolves to `true` if the cell triggered all the whole
|
|
112
|
-
* viewport rows to be updated, or `false` if the only change
|
|
113
|
-
*
|
|
162
|
+
* viewport rows to be updated, or `false` if the only change was the cell's
|
|
163
|
+
* content.
|
|
114
164
|
*/
|
|
115
|
-
async
|
|
116
|
-
|
|
165
|
+
async updateDataset() {
|
|
166
|
+
const oldValue = await this.column.viewport.grid.dataProvider?.getValue(this.column.id, this.row.index);
|
|
167
|
+
if (oldValue === this.value) {
|
|
117
168
|
// Abort if the value is the same as in the data table.
|
|
118
169
|
return false;
|
|
119
170
|
}
|
|
120
171
|
const vp = this.column.viewport;
|
|
121
|
-
const {
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
if (!originalDataTable || rowTableIndex === void 0) {
|
|
172
|
+
const { dataProvider: dp } = vp.grid;
|
|
173
|
+
const rowId = this.row.id;
|
|
174
|
+
if (!dp || rowId === void 0) {
|
|
125
175
|
return false;
|
|
126
176
|
}
|
|
127
177
|
this.row.data[this.column.id] = this.value;
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
if (vp.grid.dataTable === vp.grid.presentationTable) {
|
|
178
|
+
await dp.setValue(this.value, this.column.id, rowId);
|
|
179
|
+
if (vp.grid.querying.willNotModify()) {
|
|
131
180
|
return false;
|
|
132
181
|
}
|
|
133
182
|
await vp.updateRows();
|
|
134
183
|
return true;
|
|
135
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Initialize event listeners for table body cells.
|
|
187
|
+
*
|
|
188
|
+
* Most events (click, dblclick, keydown, mousedown, mouseover, mouseout)
|
|
189
|
+
* are delegated to Table for better performance with virtualization.
|
|
190
|
+
* Only focus/blur remain on individual cells for focus management.
|
|
191
|
+
*/
|
|
136
192
|
initEvents() {
|
|
137
|
-
this.cellEvents.push(['
|
|
138
|
-
this.cellEvents.push(['
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
193
|
+
this.cellEvents.push(['blur', () => this.onBlur()]);
|
|
194
|
+
this.cellEvents.push(['focus', () => this.onFocus()]);
|
|
195
|
+
this.cellEvents.forEach((pair) => {
|
|
196
|
+
this.htmlElement.addEventListener(pair[0], pair[1]);
|
|
197
|
+
});
|
|
142
198
|
}
|
|
143
199
|
/**
|
|
144
200
|
* Handles the focus event on the cell.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type Cell from '../Cell';
|
|
2
2
|
import type Column from '../Column';
|
|
3
|
-
import type
|
|
3
|
+
import type { RowObject as DataTableRowObject } from '../../../../Data/DataTable';
|
|
4
|
+
import type { RowId } from '../../Data/DataProvider';
|
|
4
5
|
import Row from '../Row.js';
|
|
5
6
|
import Table from '../Table.js';
|
|
6
7
|
/**
|
|
@@ -10,15 +11,15 @@ declare class TableRow extends Row {
|
|
|
10
11
|
/**
|
|
11
12
|
* The row values from the data table in the original column order.
|
|
12
13
|
*/
|
|
13
|
-
data:
|
|
14
|
+
data: DataTableRowObject;
|
|
14
15
|
/**
|
|
15
16
|
* The local index of the row in the presentation data table.
|
|
16
17
|
*/
|
|
17
18
|
index: number;
|
|
18
19
|
/**
|
|
19
|
-
* The
|
|
20
|
+
* The unique ID of the row.
|
|
20
21
|
*/
|
|
21
|
-
id?:
|
|
22
|
+
id?: RowId;
|
|
22
23
|
/**
|
|
23
24
|
* The vertical translation of the row.
|
|
24
25
|
*/
|
|
@@ -33,6 +34,7 @@ declare class TableRow extends Row {
|
|
|
33
34
|
* The index of the row in the data table.
|
|
34
35
|
*/
|
|
35
36
|
constructor(viewport: Table, index: number);
|
|
37
|
+
init(): Promise<void>;
|
|
36
38
|
createCell(column: Column): Cell;
|
|
37
39
|
/**
|
|
38
40
|
* Loads the row data from the data table.
|
|
@@ -42,7 +44,7 @@ declare class TableRow extends Row {
|
|
|
42
44
|
* Updates the row data and its cells with the latest values from the data
|
|
43
45
|
* table.
|
|
44
46
|
*/
|
|
45
|
-
update(): void
|
|
47
|
+
update(): Promise<void>;
|
|
46
48
|
/**
|
|
47
49
|
* Adds or removes the hovered CSS class to the row element.
|
|
48
50
|
*
|
|
@@ -66,6 +68,14 @@ declare class TableRow extends Row {
|
|
|
66
68
|
* lifecycle.
|
|
67
69
|
*/
|
|
68
70
|
updateRowAttributes(): void;
|
|
71
|
+
/**
|
|
72
|
+
* Updates the row parity class based on index.
|
|
73
|
+
*/
|
|
74
|
+
private updateParityClass;
|
|
75
|
+
/**
|
|
76
|
+
* Updates the hovered and synced classes based on grid state.
|
|
77
|
+
*/
|
|
78
|
+
private updateStateClasses;
|
|
69
79
|
/**
|
|
70
80
|
* Sets the vertical translation of the row. Used for virtual scrolling.
|
|
71
81
|
*
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
*
|
|
3
3
|
* Grid TableRow 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
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
import Row from '../Row.js';
|
|
18
18
|
import TableCell from './TableCell.js';
|
|
19
19
|
import Globals from '../../Globals.js';
|
|
20
|
+
import { fireEvent } from '../../../../Shared/Utilities.js';
|
|
20
21
|
/* *
|
|
21
22
|
*
|
|
22
23
|
* Class
|
|
@@ -56,24 +57,28 @@ class TableRow extends Row {
|
|
|
56
57
|
*/
|
|
57
58
|
this.translateY = 0;
|
|
58
59
|
this.index = index;
|
|
59
|
-
this.id = viewport.dataTable.getOriginalRowIndex(index);
|
|
60
|
-
this.loadData();
|
|
61
|
-
this.setRowAttributes();
|
|
62
60
|
}
|
|
63
61
|
/* *
|
|
64
62
|
*
|
|
65
63
|
* Methods
|
|
66
64
|
*
|
|
67
65
|
* */
|
|
66
|
+
async init() {
|
|
67
|
+
const dp = this.viewport.grid.dataProvider;
|
|
68
|
+
this.id = await dp?.getRowId(this.index);
|
|
69
|
+
await this.loadData();
|
|
70
|
+
this.setRowAttributes();
|
|
71
|
+
}
|
|
68
72
|
createCell(column) {
|
|
69
73
|
return new TableCell(this, column);
|
|
70
74
|
}
|
|
71
75
|
/**
|
|
72
76
|
* Loads the row data from the data table.
|
|
73
77
|
*/
|
|
74
|
-
loadData() {
|
|
75
|
-
const data = this.viewport.
|
|
78
|
+
async loadData() {
|
|
79
|
+
const data = await this.viewport.grid.dataProvider?.getRowObject(this.index);
|
|
76
80
|
if (!data) {
|
|
81
|
+
this.data = {};
|
|
77
82
|
return;
|
|
78
83
|
}
|
|
79
84
|
this.data = data;
|
|
@@ -82,13 +87,42 @@ class TableRow extends Row {
|
|
|
82
87
|
* Updates the row data and its cells with the latest values from the data
|
|
83
88
|
* table.
|
|
84
89
|
*/
|
|
85
|
-
update() {
|
|
86
|
-
this.id = this.viewport.
|
|
90
|
+
async update() {
|
|
91
|
+
this.id = await this.viewport.grid.dataProvider?.getRowId(this.index);
|
|
92
|
+
this.updateRowAttributes();
|
|
93
|
+
await this.loadData();
|
|
94
|
+
for (let i = 0, iEnd = this.cells.length; i < iEnd; ++i) {
|
|
95
|
+
const cell = this.cells[i];
|
|
96
|
+
await cell.setValue();
|
|
97
|
+
}
|
|
98
|
+
this.reflow();
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Reuses the row instance for a new index.
|
|
102
|
+
*
|
|
103
|
+
* @param index
|
|
104
|
+
* The index of the row in the data table.
|
|
105
|
+
*
|
|
106
|
+
* @internal
|
|
107
|
+
*/
|
|
108
|
+
async reuse(index) {
|
|
109
|
+
for (let i = 0, iEnd = this.cells.length; i < iEnd; ++i) {
|
|
110
|
+
fireEvent(this.cells[i], 'outdate');
|
|
111
|
+
}
|
|
112
|
+
if (this.index === index) {
|
|
113
|
+
await this.update();
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
this.index = index;
|
|
117
|
+
this.id = await this.viewport.grid.dataProvider?.getRowId(this.index);
|
|
118
|
+
this.htmlElement.setAttribute('data-row-index', index);
|
|
87
119
|
this.updateRowAttributes();
|
|
88
|
-
this.
|
|
120
|
+
this.updateParityClass();
|
|
121
|
+
this.updateStateClasses();
|
|
122
|
+
await this.loadData();
|
|
89
123
|
for (let i = 0, iEnd = this.cells.length; i < iEnd; ++i) {
|
|
90
124
|
const cell = this.cells[i];
|
|
91
|
-
|
|
125
|
+
await cell.setValue();
|
|
92
126
|
}
|
|
93
127
|
this.reflow();
|
|
94
128
|
}
|
|
@@ -127,13 +161,8 @@ class TableRow extends Row {
|
|
|
127
161
|
el.setAttribute('data-row-index', idx);
|
|
128
162
|
this.updateRowAttributes();
|
|
129
163
|
// Indexing from 0, so rows with even index are odd.
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
el.classList.add(Globals.getClassName('hoveredRow'));
|
|
133
|
-
}
|
|
134
|
-
if (this.viewport.grid.syncedRowIndex === idx) {
|
|
135
|
-
el.classList.add(Globals.getClassName('syncedRow'));
|
|
136
|
-
}
|
|
164
|
+
this.updateParityClass();
|
|
165
|
+
this.updateStateClasses();
|
|
137
166
|
}
|
|
138
167
|
/**
|
|
139
168
|
* Sets the row HTML element attributes that are updateable in the row
|
|
@@ -151,6 +180,28 @@ class TableRow extends Row {
|
|
|
151
180
|
// Calculate levels of header, 1 to avoid indexing from 0
|
|
152
181
|
a11y?.setRowIndex(el, idx + (vp.header?.rows.length ?? 0) + 1);
|
|
153
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* Updates the row parity class based on index.
|
|
185
|
+
*/
|
|
186
|
+
updateParityClass() {
|
|
187
|
+
const el = this.htmlElement;
|
|
188
|
+
el.classList.remove(Globals.getClassName('rowEven'), Globals.getClassName('rowOdd'));
|
|
189
|
+
// Indexing from 0, so rows with even index are odd.
|
|
190
|
+
el.classList.add(Globals.getClassName(this.index % 2 ? 'rowEven' : 'rowOdd'));
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Updates the hovered and synced classes based on grid state.
|
|
194
|
+
*/
|
|
195
|
+
updateStateClasses() {
|
|
196
|
+
const el = this.htmlElement;
|
|
197
|
+
el.classList.remove(Globals.getClassName('hoveredRow'), Globals.getClassName('syncedRow'));
|
|
198
|
+
if (this.viewport.grid.hoveredRowIndex === this.index) {
|
|
199
|
+
el.classList.add(Globals.getClassName('hoveredRow'));
|
|
200
|
+
}
|
|
201
|
+
if (this.viewport.grid.syncedRowIndex === this.index) {
|
|
202
|
+
el.classList.add(Globals.getClassName('syncedRow'));
|
|
203
|
+
}
|
|
204
|
+
}
|
|
154
205
|
/**
|
|
155
206
|
* Sets the vertical translation of the row. Used for virtual scrolling.
|
|
156
207
|
*
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { CellType as DataTableCellType } from '../../../Data/DataTable';
|
|
2
|
+
import type CSSObject from '../../../Core/Renderer/CSSObject';
|
|
2
3
|
import Column from './Column';
|
|
3
4
|
import Row from './Row';
|
|
4
5
|
declare abstract class Cell {
|
|
@@ -17,11 +18,15 @@ declare abstract class Cell {
|
|
|
17
18
|
/**
|
|
18
19
|
* The raw value of the cell.
|
|
19
20
|
*/
|
|
20
|
-
value:
|
|
21
|
+
value: DataTableCellType;
|
|
21
22
|
/**
|
|
22
23
|
* An additional, custom class name that can be changed dynamically.
|
|
23
24
|
*/
|
|
24
25
|
private customClassName?;
|
|
26
|
+
/**
|
|
27
|
+
* Custom inline styles currently applied from user options.
|
|
28
|
+
*/
|
|
29
|
+
private customStyleProperties?;
|
|
25
30
|
/**
|
|
26
31
|
* Array of cell events to be removed when the cell is destroyed.
|
|
27
32
|
*/
|
|
@@ -52,17 +57,10 @@ declare abstract class Cell {
|
|
|
52
57
|
* Handles the blur event on the cell.
|
|
53
58
|
*/
|
|
54
59
|
protected onBlur(): void;
|
|
55
|
-
/**
|
|
56
|
-
* Handles user keydown on the cell.
|
|
57
|
-
*
|
|
58
|
-
* @param e
|
|
59
|
-
* Keyboard event object.
|
|
60
|
-
*/
|
|
61
|
-
protected onKeyDown(e: KeyboardEvent): void;
|
|
62
60
|
/**
|
|
63
61
|
* Renders the cell by appending the HTML element to the row.
|
|
64
62
|
*/
|
|
65
|
-
render(): void
|
|
63
|
+
render(): Promise<void>;
|
|
66
64
|
/**
|
|
67
65
|
* Reflows the cell dimensions.
|
|
68
66
|
*/
|
|
@@ -84,6 +82,14 @@ declare abstract class Cell {
|
|
|
84
82
|
* The template string.
|
|
85
83
|
*/
|
|
86
84
|
protected setCustomClassName(template?: string): void;
|
|
85
|
+
/**
|
|
86
|
+
* Sets custom inline styles from options and removes the previously applied
|
|
87
|
+
* custom styles to keep updates deterministic.
|
|
88
|
+
*
|
|
89
|
+
* @param styles
|
|
90
|
+
* A style object to apply.
|
|
91
|
+
*/
|
|
92
|
+
protected setCustomStyles(styles?: CSSObject): void;
|
|
87
93
|
/**
|
|
88
94
|
* Destroys the cell.
|
|
89
95
|
*/
|