@highcharts/grid-pro 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -0
- package/css/grid-pro.css +1756 -0
- package/es-modules/Accessibility/A11yI18n.d.ts +95 -0
- package/es-modules/Accessibility/A11yI18n.js +290 -0
- package/es-modules/Accessibility/Accessibility.d.ts +116 -0
- package/es-modules/Accessibility/Accessibility.js +402 -0
- package/es-modules/Accessibility/AccessibilityComponent.d.ts +97 -0
- package/es-modules/Accessibility/AccessibilityComponent.js +147 -0
- package/es-modules/Accessibility/Components/AnnotationsA11y.d.ts +43 -0
- package/es-modules/Accessibility/Components/AnnotationsA11y.js +160 -0
- package/es-modules/Accessibility/Components/ContainerComponent.d.ts +48 -0
- package/es-modules/Accessibility/Components/ContainerComponent.js +142 -0
- package/es-modules/Accessibility/Components/InfoRegionsComponent.d.ts +144 -0
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +555 -0
- package/es-modules/Accessibility/Components/LegendComponent.d.ts +124 -0
- package/es-modules/Accessibility/Components/LegendComponent.js +474 -0
- package/es-modules/Accessibility/Components/MenuComponent.d.ts +93 -0
- package/es-modules/Accessibility/Components/MenuComponent.js +430 -0
- package/es-modules/Accessibility/Components/NavigatorComponent.d.ts +57 -0
- package/es-modules/Accessibility/Components/NavigatorComponent.js +235 -0
- package/es-modules/Accessibility/Components/RangeSelectorComponent.d.ts +126 -0
- package/es-modules/Accessibility/Components/RangeSelectorComponent.js +473 -0
- package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.d.ts +18 -0
- package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +234 -0
- package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.d.ts +87 -0
- package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +309 -0
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.d.ts +53 -0
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +130 -0
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.d.ts +28 -0
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +415 -0
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.d.ts +114 -0
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +721 -0
- package/es-modules/Accessibility/Components/ZoomComponent.d.ts +96 -0
- package/es-modules/Accessibility/Components/ZoomComponent.js +314 -0
- package/es-modules/Accessibility/FocusBorder.d.ts +40 -0
- package/es-modules/Accessibility/FocusBorder.js +301 -0
- package/es-modules/Accessibility/HighContrastMode.d.ts +35 -0
- package/es-modules/Accessibility/HighContrastMode.js +100 -0
- package/es-modules/Accessibility/HighContrastTheme.d.ts +11 -0
- package/es-modules/Accessibility/HighContrastTheme.js +212 -0
- package/es-modules/Accessibility/KeyboardNavigation.d.ts +133 -0
- package/es-modules/Accessibility/KeyboardNavigation.js +450 -0
- package/es-modules/Accessibility/KeyboardNavigationHandler.d.ts +48 -0
- package/es-modules/Accessibility/KeyboardNavigationHandler.js +126 -0
- package/es-modules/Accessibility/Options/A11yDefaults.d.ts +68 -0
- package/es-modules/Accessibility/Options/A11yDefaults.js +971 -0
- package/es-modules/Accessibility/Options/DeprecatedOptions.d.ts +22 -0
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +265 -0
- package/es-modules/Accessibility/Options/LangDefaults.d.ts +4 -0
- package/es-modules/Accessibility/Options/LangDefaults.js +440 -0
- package/es-modules/Accessibility/ProxyElement.d.ts +78 -0
- package/es-modules/Accessibility/ProxyElement.js +223 -0
- package/es-modules/Accessibility/ProxyProvider.d.ts +90 -0
- package/es-modules/Accessibility/ProxyProvider.js +315 -0
- package/es-modules/Accessibility/Utils/Announcer.d.ts +26 -0
- package/es-modules/Accessibility/Utils/Announcer.js +90 -0
- package/es-modules/Accessibility/Utils/ChartUtilities.d.ts +90 -0
- package/es-modules/Accessibility/Utils/ChartUtilities.js +298 -0
- package/es-modules/Accessibility/Utils/DOMElementProvider.d.ts +20 -0
- package/es-modules/Accessibility/Utils/DOMElementProvider.js +69 -0
- package/es-modules/Accessibility/Utils/EventProvider.d.ts +26 -0
- package/es-modules/Accessibility/Utils/EventProvider.js +65 -0
- package/es-modules/Accessibility/Utils/HTMLUtilities.d.ts +108 -0
- package/es-modules/Accessibility/Utils/HTMLUtilities.js +319 -0
- package/es-modules/Core/Animation/AnimationUtilities.d.ts +107 -0
- package/es-modules/Core/Animation/AnimationUtilities.js +200 -0
- package/es-modules/Core/Animation/Fx.d.ts +130 -0
- package/es-modules/Core/Animation/Fx.js +388 -0
- package/es-modules/Core/Chart/Chart.d.ts +1009 -0
- package/es-modules/Core/Chart/Chart.js +3008 -0
- package/es-modules/Core/Chart/Chart3D.d.ts +276 -0
- package/es-modules/Core/Chart/Chart3D.js +1686 -0
- package/es-modules/Core/Chart/ChartDefaults.d.ts +8 -0
- package/es-modules/Core/Chart/ChartDefaults.js +1304 -0
- package/es-modules/Core/Chart/ChartNavigationComposition.d.ts +55 -0
- package/es-modules/Core/Chart/ChartNavigationComposition.js +90 -0
- package/es-modules/Core/Chart/GanttChart.d.ts +74 -0
- package/es-modules/Core/Chart/GanttChart.js +189 -0
- package/es-modules/Core/Chart/MapChart.d.ts +132 -0
- package/es-modules/Core/Chart/MapChart.js +232 -0
- package/es-modules/Core/Chart/StockChart.d.ts +117 -0
- package/es-modules/Core/Chart/StockChart.js +641 -0
- package/es-modules/Core/Color/Color.d.ts +112 -0
- package/es-modules/Core/Color/Color.js +418 -0
- package/es-modules/Core/Color/Palettes.d.ts +84 -0
- package/es-modules/Core/Color/Palettes.js +23 -0
- package/es-modules/Core/Defaults.d.ts +42 -0
- package/es-modules/Core/Defaults.js +2977 -0
- package/es-modules/Core/Foundation.d.ts +19 -0
- package/es-modules/Core/Foundation.js +63 -0
- package/es-modules/Core/Geometry/CircleUtilities.d.ts +189 -0
- package/es-modules/Core/Geometry/CircleUtilities.js +388 -0
- package/es-modules/Core/Geometry/GeometryUtilities.d.ts +48 -0
- package/es-modules/Core/Geometry/GeometryUtilities.js +105 -0
- package/es-modules/Core/Geometry/PolygonClip.d.ts +19 -0
- package/es-modules/Core/Geometry/PolygonClip.js +96 -0
- package/es-modules/Core/Globals.d.ts +110 -0
- package/es-modules/Core/Globals.js +127 -0
- package/es-modules/Core/HttpUtilities.d.ts +61 -0
- package/es-modules/Core/HttpUtilities.js +214 -0
- package/es-modules/Core/MSPointer.d.ts +74 -0
- package/es-modules/Core/MSPointer.js +218 -0
- package/es-modules/Core/Math3D.d.ts +117 -0
- package/es-modules/Core/Math3D.js +250 -0
- package/es-modules/Core/Pointer.d.ts +590 -0
- package/es-modules/Core/Pointer.js +1631 -0
- package/es-modules/Core/Renderer/HTML/AST.d.ts +163 -0
- package/es-modules/Core/Renderer/HTML/AST.js +562 -0
- package/es-modules/Core/Renderer/HTML/HTMLElement.d.ts +76 -0
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +471 -0
- package/es-modules/Core/Renderer/RendererRegistry.d.ts +29 -0
- package/es-modules/Core/Renderer/RendererRegistry.js +76 -0
- package/es-modules/Core/Renderer/RendererUtilities.d.ts +26 -0
- package/es-modules/Core/Renderer/RendererUtilities.js +172 -0
- package/es-modules/Core/Responsive.d.ts +55 -0
- package/es-modules/Core/Responsive.js +260 -0
- package/es-modules/Core/Templating.d.ts +125 -0
- package/es-modules/Core/Templating.js +428 -0
- package/es-modules/Core/Time.d.ts +69 -0
- package/es-modules/Core/Time.js +172 -0
- package/es-modules/Core/Tooltip.d.ts +297 -0
- package/es-modules/Core/Tooltip.js +1377 -0
- package/es-modules/Core/Utilities.d.ts +770 -0
- package/es-modules/Core/Utilities.js +1989 -0
- package/es-modules/Data/ColumnUtils.d.ts +87 -0
- package/es-modules/Data/ColumnUtils.js +140 -0
- package/es-modules/Data/Connectors/CSVConnector.d.ts +63 -0
- package/es-modules/Data/Connectors/CSVConnector.js +149 -0
- package/es-modules/Data/Connectors/CSVConnectorOptions.d.ts +149 -0
- package/es-modules/Data/Connectors/DataConnector.d.ts +204 -0
- package/es-modules/Data/Connectors/DataConnector.js +345 -0
- package/es-modules/Data/Connectors/DataConnectorOptions.d.ts +87 -0
- package/es-modules/Data/Connectors/DataConnectorType.d.ts +45 -0
- package/es-modules/Data/Connectors/GoogleSheetsConnector.d.ts +65 -0
- package/es-modules/Data/Connectors/GoogleSheetsConnector.js +226 -0
- package/es-modules/Data/Connectors/GoogleSheetsConnectorOptions.d.ts +167 -0
- package/es-modules/Data/Connectors/HTMLTableConnector.d.ts +77 -0
- package/es-modules/Data/Connectors/HTMLTableConnector.js +119 -0
- package/es-modules/Data/Connectors/HTMLTableConnectorOptions.d.ts +49 -0
- package/es-modules/Data/Connectors/JSONConnector.d.ts +64 -0
- package/es-modules/Data/Connectors/JSONConnector.js +156 -0
- package/es-modules/Data/Connectors/JSONConnectorOptions.d.ts +185 -0
- package/es-modules/Data/Converters/CSVConverter.d.ts +64 -0
- package/es-modules/Data/Converters/CSVConverter.js +374 -0
- package/es-modules/Data/Converters/CSVConverterOptions.d.ts +53 -0
- package/es-modules/Data/Converters/DataConverter.d.ts +168 -0
- package/es-modules/Data/Converters/DataConverter.js +387 -0
- package/es-modules/Data/Converters/DataConverterType.d.ts +40 -0
- package/es-modules/Data/Converters/DataConverterUtils.d.ts +82 -0
- package/es-modules/Data/Converters/DataConverterUtils.js +216 -0
- package/es-modules/Data/Converters/GoogleSheetsConverter.d.ts +46 -0
- package/es-modules/Data/Converters/GoogleSheetsConverter.js +135 -0
- package/es-modules/Data/Converters/GoogleSheetsConverterOptions.d.ts +52 -0
- package/es-modules/Data/Converters/HTMLTableConverter.d.ts +72 -0
- package/es-modules/Data/Converters/HTMLTableConverter.js +362 -0
- package/es-modules/Data/Converters/HTMLTableConverterOptions.d.ts +51 -0
- package/es-modules/Data/Converters/JSONConverter.d.ts +99 -0
- package/es-modules/Data/Converters/JSONConverter.js +239 -0
- package/es-modules/Data/Converters/JSONConverterOptions.d.ts +52 -0
- package/es-modules/Data/DataCursor.d.ts +176 -0
- package/es-modules/Data/DataCursor.js +379 -0
- package/es-modules/Data/DataEvent.d.ts +81 -0
- package/es-modules/Data/DataEvent.js +14 -0
- package/es-modules/Data/DataPool.d.ts +130 -0
- package/es-modules/Data/DataPool.js +257 -0
- package/es-modules/Data/DataPoolOptions.d.ts +66 -0
- package/es-modules/Data/DataTable.d.ts +563 -0
- package/es-modules/Data/DataTable.js +930 -0
- package/es-modules/Data/DataTableCore.d.ts +165 -0
- package/es-modules/Data/DataTableCore.js +316 -0
- package/es-modules/Data/DataTableOptions.d.ts +25 -0
- package/es-modules/Data/DataTableOptions.js +15 -0
- package/es-modules/Data/Formula/Formula.d.ts +21 -0
- package/es-modules/Data/Formula/Formula.js +54 -0
- package/es-modules/Data/Formula/FormulaParser.d.ts +31 -0
- package/es-modules/Data/Formula/FormulaParser.js +488 -0
- package/es-modules/Data/Formula/FormulaProcessor.d.ts +155 -0
- package/es-modules/Data/Formula/FormulaProcessor.js +529 -0
- package/es-modules/Data/Formula/FormulaTypes.d.ts +138 -0
- package/es-modules/Data/Formula/FormulaTypes.js +135 -0
- package/es-modules/Data/Formula/Functions/ABS.d.ts +19 -0
- package/es-modules/Data/Formula/Functions/ABS.js +67 -0
- package/es-modules/Data/Formula/Functions/AND.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/AND.js +59 -0
- package/es-modules/Data/Formula/Functions/AVERAGE.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/AVERAGE.js +74 -0
- package/es-modules/Data/Formula/Functions/AVERAGEA.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/AVERAGEA.js +90 -0
- package/es-modules/Data/Formula/Functions/COUNT.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/COUNT.js +65 -0
- package/es-modules/Data/Formula/Functions/COUNTA.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/COUNTA.js +71 -0
- package/es-modules/Data/Formula/Functions/IF.d.ts +21 -0
- package/es-modules/Data/Formula/Functions/IF.js +54 -0
- package/es-modules/Data/Formula/Functions/ISNA.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/ISNA.js +52 -0
- package/es-modules/Data/Formula/Functions/MAX.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/MAX.js +69 -0
- package/es-modules/Data/Formula/Functions/MEDIAN.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/MEDIAN.js +78 -0
- package/es-modules/Data/Formula/Functions/MIN.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/MIN.js +69 -0
- package/es-modules/Data/Formula/Functions/MOD.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/MOD.js +63 -0
- package/es-modules/Data/Formula/Functions/MODE.d.ts +41 -0
- package/es-modules/Data/Formula/Functions/MODE.js +149 -0
- package/es-modules/Data/Formula/Functions/NOT.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/NOT.js +60 -0
- package/es-modules/Data/Formula/Functions/OR.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/OR.js +62 -0
- package/es-modules/Data/Formula/Functions/PRODUCT.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/PRODUCT.js +68 -0
- package/es-modules/Data/Formula/Functions/SUM.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/SUM.js +65 -0
- package/es-modules/Data/Formula/Functions/XOR.d.ts +20 -0
- package/es-modules/Data/Formula/Functions/XOR.js +81 -0
- package/es-modules/Data/Modifiers/ChainModifier.d.ts +128 -0
- package/es-modules/Data/Modifiers/ChainModifier.js +231 -0
- package/es-modules/Data/Modifiers/ChainModifierOptions.d.ts +20 -0
- package/es-modules/Data/Modifiers/ChainModifierOptions.js +14 -0
- package/es-modules/Data/Modifiers/DataModifier.d.ts +117 -0
- package/es-modules/Data/Modifiers/DataModifier.js +202 -0
- package/es-modules/Data/Modifiers/DataModifierEvent.d.ts +28 -0
- package/es-modules/Data/Modifiers/DataModifierEvent.js +15 -0
- package/es-modules/Data/Modifiers/DataModifierOptions.d.ts +11 -0
- package/es-modules/Data/Modifiers/DataModifierOptions.js +15 -0
- package/es-modules/Data/Modifiers/DataModifierType.d.ts +44 -0
- package/es-modules/Data/Modifiers/FilterModifier.d.ts +53 -0
- package/es-modules/Data/Modifiers/FilterModifier.js +172 -0
- package/es-modules/Data/Modifiers/FilterModifierOptions.d.ts +110 -0
- package/es-modules/Data/Modifiers/FilterModifierOptions.js +14 -0
- package/es-modules/Data/Modifiers/InvertModifier.d.ts +48 -0
- package/es-modules/Data/Modifiers/InvertModifier.js +116 -0
- package/es-modules/Data/Modifiers/InvertModifierOptions.d.ts +11 -0
- package/es-modules/Data/Modifiers/InvertModifierOptions.js +15 -0
- package/es-modules/Data/Modifiers/MathModifier.d.ts +68 -0
- package/es-modules/Data/Modifiers/MathModifier.js +165 -0
- package/es-modules/Data/Modifiers/MathModifierOptions.d.ts +50 -0
- package/es-modules/Data/Modifiers/MathModifierOptions.js +14 -0
- package/es-modules/Data/Modifiers/RangeModifier.d.ts +46 -0
- package/es-modules/Data/Modifiers/RangeModifier.js +96 -0
- package/es-modules/Data/Modifiers/RangeModifierOptions.d.ts +22 -0
- package/es-modules/Data/Modifiers/RangeModifierOptions.js +15 -0
- package/es-modules/Data/Modifiers/SortModifier.d.ts +54 -0
- package/es-modules/Data/Modifiers/SortModifier.js +144 -0
- package/es-modules/Data/Modifiers/SortModifierOptions.d.ts +44 -0
- package/es-modules/Data/Modifiers/SortModifierOptions.js +14 -0
- package/es-modules/Grid/Core/Accessibility/A11yOptions.d.ts +148 -0
- package/es-modules/Grid/Core/Accessibility/A11yOptions.js +17 -0
- package/es-modules/Grid/Core/Accessibility/Accessibility.d.ts +115 -0
- package/es-modules/Grid/Core/Accessibility/Accessibility.js +231 -0
- package/es-modules/Grid/Core/Credits.d.ts +57 -0
- package/es-modules/Grid/Core/Credits.js +125 -0
- package/es-modules/Grid/Core/Defaults.d.ts +20 -0
- package/es-modules/Grid/Core/Defaults.js +148 -0
- package/es-modules/Grid/Core/Globals.d.ts +103 -0
- package/es-modules/Grid/Core/Globals.js +134 -0
- package/es-modules/Grid/Core/Grid.d.ts +295 -0
- package/es-modules/Grid/Core/Grid.js +730 -0
- package/es-modules/Grid/Core/GridUtils.d.ts +110 -0
- package/es-modules/Grid/Core/GridUtils.js +191 -0
- package/es-modules/Grid/Core/Options.d.ts +599 -0
- package/es-modules/Grid/Core/Options.js +16 -0
- package/es-modules/Grid/Core/Pagination/Icons.d.ts +7 -0
- package/es-modules/Grid/Core/Pagination/Icons.js +7 -0
- package/es-modules/Grid/Core/Pagination/Pagination.d.ts +278 -0
- package/es-modules/Grid/Core/Pagination/Pagination.js +842 -0
- package/es-modules/Grid/Core/Pagination/PaginationOptions.d.ts +228 -0
- package/es-modules/Grid/Core/Querying/FilteringController.d.ts +66 -0
- package/es-modules/Grid/Core/Querying/FilteringController.js +256 -0
- package/es-modules/Grid/Core/Querying/PaginationController.d.ts +50 -0
- package/es-modules/Grid/Core/Querying/PaginationController.js +101 -0
- package/es-modules/Grid/Core/Querying/QueryingController.d.ts +58 -0
- package/es-modules/Grid/Core/Querying/QueryingController.js +127 -0
- package/es-modules/Grid/Core/Querying/SortingController.d.ts +67 -0
- package/es-modules/Grid/Core/Querying/SortingController.js +136 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/ColumnFiltering.d.ts +114 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/ColumnFiltering.js +351 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterCell.d.ts +14 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterCell.js +86 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterRow.d.ts +19 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilterRow.js +80 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilteringTypes.d.ts +52 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnFiltering/FilteringTypes.js +81 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnSorting.d.ts +56 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnSorting.js +170 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnsResizer.d.ts +55 -0
- package/es-modules/Grid/Core/Table/Actions/ColumnsResizer.js +182 -0
- package/es-modules/Grid/Core/Table/Actions/RowsVirtualizer.d.ts +87 -0
- package/es-modules/Grid/Core/Table/Actions/RowsVirtualizer.js +346 -0
- package/es-modules/Grid/Core/Table/Body/TableCell.d.ts +88 -0
- package/es-modules/Grid/Core/Table/Body/TableCell.js +231 -0
- package/es-modules/Grid/Core/Table/Body/TableRow.d.ts +79 -0
- package/es-modules/Grid/Core/Table/Body/TableRow.js +177 -0
- package/es-modules/Grid/Core/Table/Cell.d.ts +92 -0
- package/es-modules/Grid/Core/Table/Cell.js +223 -0
- package/es-modules/Grid/Core/Table/CellContent/CellContent.d.ts +30 -0
- package/es-modules/Grid/Core/Table/CellContent/CellContent.js +40 -0
- package/es-modules/Grid/Core/Table/CellContent/TextContent.d.ts +19 -0
- package/es-modules/Grid/Core/Table/CellContent/TextContent.js +98 -0
- package/es-modules/Grid/Core/Table/Column.d.ts +136 -0
- package/es-modules/Grid/Core/Table/Column.js +230 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/AdjacentResizingMode.d.ts +7 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/AdjacentResizingMode.js +62 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/ColumnResizing.d.ts +32 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/ColumnResizing.js +68 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/DistributedResizingMode.d.ts +7 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/DistributedResizingMode.js +53 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/IndependentResizingMode.d.ts +7 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/IndependentResizingMode.js +63 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/ResizingMode.d.ts +92 -0
- package/es-modules/Grid/Core/Table/ColumnResizing/ResizingMode.js +194 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ColumnToolbar.d.ts +68 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ColumnToolbar.js +187 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/FilterPopup.d.ts +29 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/FilterPopup.js +77 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/FilterMenuButton.d.ts +13 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/FilterMenuButton.js +79 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/SortMenuButton.d.ts +12 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuButtons/SortMenuButton.js +71 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuPopup.d.ts +12 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/MenuPopup.js +66 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/StateHelpers.d.ts +25 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/StateHelpers.js +65 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/FilterToolbarButton.d.ts +12 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/FilterToolbarButton.js +81 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/MenuToolbarButton.d.ts +12 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/MenuToolbarButton.js +80 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.d.ts +11 -0
- package/es-modules/Grid/Core/Table/Header/ColumnToolbar/ToolbarButtons/SortToolbarButton.js +81 -0
- package/es-modules/Grid/Core/Table/Header/HeaderCell.d.ts +70 -0
- package/es-modules/Grid/Core/Table/Header/HeaderCell.js +225 -0
- package/es-modules/Grid/Core/Table/Header/HeaderRow.d.ts +53 -0
- package/es-modules/Grid/Core/Table/Header/HeaderRow.js +182 -0
- package/es-modules/Grid/Core/Table/Header/TableHeader.d.ts +65 -0
- package/es-modules/Grid/Core/Table/Header/TableHeader.js +159 -0
- package/es-modules/Grid/Core/Table/Row.d.ts +76 -0
- package/es-modules/Grid/Core/Table/Row.js +131 -0
- package/es-modules/Grid/Core/Table/Table.d.ts +181 -0
- package/es-modules/Grid/Core/Table/Table.js +399 -0
- package/es-modules/Grid/Core/UI/Button.d.ts +31 -0
- package/es-modules/Grid/Core/UI/Button.js +16 -0
- package/es-modules/Grid/Core/UI/ContextMenu.d.ts +38 -0
- package/es-modules/Grid/Core/UI/ContextMenu.js +132 -0
- package/es-modules/Grid/Core/UI/ContextMenuButton.d.ts +126 -0
- package/es-modules/Grid/Core/UI/ContextMenuButton.js +183 -0
- package/es-modules/Grid/Core/UI/Popup.d.ts +149 -0
- package/es-modules/Grid/Core/UI/Popup.js +271 -0
- package/es-modules/Grid/Core/UI/SvgIcons.d.ts +53 -0
- package/es-modules/Grid/Core/UI/SvgIcons.js +158 -0
- package/es-modules/Grid/Core/UI/Toolbar.d.ts +16 -0
- package/es-modules/Grid/Core/UI/Toolbar.js +16 -0
- package/es-modules/Grid/Core/UI/ToolbarButton.d.ts +135 -0
- package/es-modules/Grid/Core/UI/ToolbarButton.js +191 -0
- package/es-modules/Grid/Pro/CellEditing/CellEditMode.d.ts +112 -0
- package/es-modules/Grid/Pro/CellEditing/CellEditing.d.ts +80 -0
- package/es-modules/Grid/Pro/CellEditing/CellEditing.js +211 -0
- package/es-modules/Grid/Pro/CellEditing/CellEditingComposition.d.ts +123 -0
- package/es-modules/Grid/Pro/CellEditing/CellEditingComposition.js +198 -0
- package/es-modules/Grid/Pro/CellRendering/CellContentPro.d.ts +23 -0
- package/es-modules/Grid/Pro/CellRendering/CellContentPro.js +45 -0
- package/es-modules/Grid/Pro/CellRendering/CellRenderer.d.ts +50 -0
- package/es-modules/Grid/Pro/CellRendering/CellRenderer.js +41 -0
- package/es-modules/Grid/Pro/CellRendering/CellRendererRegistry.d.ts +18 -0
- package/es-modules/Grid/Pro/CellRendering/CellRendererRegistry.js +58 -0
- package/es-modules/Grid/Pro/CellRendering/CellRendererType.d.ts +48 -0
- package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.d.ts +18 -0
- package/es-modules/Grid/Pro/CellRendering/CellRenderersComposition.js +79 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/CheckboxContent.d.ts +30 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/CheckboxContent.js +122 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContent.d.ts +12 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContent.js +39 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContentBase.d.ts +66 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateInputContentBase.js +145 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateTimeInputContent.d.ts +12 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/DateTimeInputContent.js +38 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/NumberInputContent.d.ts +58 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/NumberInputContent.js +158 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/SelectContent.d.ts +58 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/SelectContent.js +173 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/SparklineContent.d.ts +28 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/SparklineContent.js +157 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/TextInputContent.d.ts +58 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/TextInputContent.js +168 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/TimeInputContent.d.ts +13 -0
- package/es-modules/Grid/Pro/CellRendering/ContentTypes/TimeInputContent.js +41 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/CheckboxRenderer.d.ts +50 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/CheckboxRenderer.js +65 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRenderer.d.ts +37 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRenderer.js +65 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRendererBase.d.ts +26 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/DateInputRendererBase.js +16 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/DateTimeInputRenderer.d.ts +37 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/DateTimeInputRenderer.js +64 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/NumberInputRenderer.d.ts +52 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/NumberInputRenderer.js +64 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/SelectRenderer.d.ts +74 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/SelectRenderer.js +66 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.d.ts +45 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/SparklineRenderer.js +89 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/TextInputRenderer.d.ts +54 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/TextInputRenderer.js +65 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/TextRenderer.d.ts +43 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/TextRenderer.js +74 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/TimeInputRenderer.d.ts +37 -0
- package/es-modules/Grid/Pro/CellRendering/Renderers/TimeInputRenderer.js +64 -0
- package/es-modules/Grid/Pro/ColumnTypes/ColumnDataType.d.ts +29 -0
- package/es-modules/Grid/Pro/ColumnTypes/Validator.d.ts +118 -0
- package/es-modules/Grid/Pro/ColumnTypes/Validator.js +270 -0
- package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.d.ts +32 -0
- package/es-modules/Grid/Pro/ColumnTypes/ValidatorComposition.js +63 -0
- package/es-modules/Grid/Pro/Credits/CreditsPro.d.ts +35 -0
- package/es-modules/Grid/Pro/Credits/CreditsPro.js +112 -0
- package/es-modules/Grid/Pro/Credits/CreditsProComposition.d.ts +28 -0
- package/es-modules/Grid/Pro/Credits/CreditsProComposition.js +61 -0
- package/es-modules/Grid/Pro/Export/Exporting.d.ts +68 -0
- package/es-modules/Grid/Pro/Export/Exporting.js +202 -0
- package/es-modules/Grid/Pro/Export/ExportingComposition.d.ts +68 -0
- package/es-modules/Grid/Pro/Export/ExportingComposition.js +55 -0
- package/es-modules/Grid/Pro/GridEvents.d.ts +119 -0
- package/es-modules/Grid/Pro/GridEvents.js +107 -0
- package/es-modules/Grid/Pro/Pagination/PaginationComposition.d.ts +75 -0
- package/es-modules/Grid/Pro/Pagination/PaginationComposition.js +76 -0
- package/es-modules/Grid/Pro/highcharts.d.ts +7 -0
- package/es-modules/Grid/index.d.ts +5 -0
- package/es-modules/Grid/index.js +19 -0
- package/es-modules/Shared/BaseForm.d.ts +49 -0
- package/es-modules/Shared/BaseForm.js +126 -0
- package/es-modules/Shared/DownloadURL.d.ts +85 -0
- package/es-modules/Shared/DownloadURL.js +198 -0
- package/es-modules/Shared/LangOptionsCore.d.ts +27 -0
- package/es-modules/Shared/TimeBase.d.ts +353 -0
- package/es-modules/Shared/TimeBase.js +830 -0
- package/es-modules/Shared/Types.d.ts +48 -0
- package/es-modules/masters/grid-pro.src.d.ts +99 -0
- package/es-modules/masters/grid-pro.src.js +129 -0
- package/grid-pro.d.ts +50 -0
- package/grid-pro.js +12 -0
- package/grid-pro.js.map +1 -0
- package/grid-pro.src.d.ts +50 -0
- package/grid-pro.src.js +26623 -0
- package/package.json +21 -0
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/* *
|
|
2
|
+
*
|
|
3
|
+
* Grid Toolbar Button class
|
|
4
|
+
*
|
|
5
|
+
* (c) 2020-2025 Highsoft AS
|
|
6
|
+
*
|
|
7
|
+
* License: www.highcharts.com/license
|
|
8
|
+
*
|
|
9
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
10
|
+
*
|
|
11
|
+
* Authors:
|
|
12
|
+
* - Dawid Dragula
|
|
13
|
+
*
|
|
14
|
+
* */
|
|
15
|
+
'use strict';
|
|
16
|
+
import SvgIcons from './SvgIcons.js';
|
|
17
|
+
import Globals from '../Globals.js';
|
|
18
|
+
import GridUtils from '../GridUtils.js';
|
|
19
|
+
const { makeHTMLElement } = GridUtils;
|
|
20
|
+
/* *
|
|
21
|
+
*
|
|
22
|
+
* Class
|
|
23
|
+
*
|
|
24
|
+
* */
|
|
25
|
+
class ToolbarButton {
|
|
26
|
+
/* *
|
|
27
|
+
*
|
|
28
|
+
* Constructor
|
|
29
|
+
*
|
|
30
|
+
* */
|
|
31
|
+
constructor(options) {
|
|
32
|
+
/**
|
|
33
|
+
* Used to remove the event listeners when the button is destroyed.
|
|
34
|
+
*/
|
|
35
|
+
this.eventListenerDestroyers = [];
|
|
36
|
+
/**
|
|
37
|
+
* Whether the button is active.
|
|
38
|
+
*/
|
|
39
|
+
this.isActive = false;
|
|
40
|
+
this.options = options;
|
|
41
|
+
}
|
|
42
|
+
/* *
|
|
43
|
+
*
|
|
44
|
+
* Methods
|
|
45
|
+
*
|
|
46
|
+
* */
|
|
47
|
+
/**
|
|
48
|
+
* Adds the button to the toolbar.
|
|
49
|
+
*
|
|
50
|
+
* @param toolbar
|
|
51
|
+
* The toolbar to add the button to.
|
|
52
|
+
*/
|
|
53
|
+
add(toolbar) {
|
|
54
|
+
const cfg = this.options;
|
|
55
|
+
this.toolbar = toolbar;
|
|
56
|
+
toolbar.buttons.push(this);
|
|
57
|
+
const wrapper = makeHTMLElement('span', cfg.classNameKey && {
|
|
58
|
+
className: Globals.getClassName(cfg.classNameKey)
|
|
59
|
+
}, toolbar.container);
|
|
60
|
+
this.wrapper = wrapper;
|
|
61
|
+
const button = this.buttonEl = makeHTMLElement('button', {
|
|
62
|
+
className: (Globals.getClassName('button') +
|
|
63
|
+
(this.isActive ? ' active' : ''))
|
|
64
|
+
}, wrapper);
|
|
65
|
+
button.setAttribute('type', 'button');
|
|
66
|
+
button.setAttribute('tabindex', '-1');
|
|
67
|
+
this.setA11yAttributes(button);
|
|
68
|
+
this.setIcon(cfg.icon);
|
|
69
|
+
this.refreshState();
|
|
70
|
+
this.addEventListeners();
|
|
71
|
+
return this;
|
|
72
|
+
}
|
|
73
|
+
setA11yAttributes(button) {
|
|
74
|
+
const { accessibility, tooltip } = this.options;
|
|
75
|
+
const { ariaLabel, ariaExpanded, ariaControls } = accessibility || {};
|
|
76
|
+
if (tooltip) {
|
|
77
|
+
button.title = tooltip;
|
|
78
|
+
}
|
|
79
|
+
if (ariaLabel) {
|
|
80
|
+
button.setAttribute('aria-label', ariaLabel);
|
|
81
|
+
}
|
|
82
|
+
if (typeof ariaExpanded === 'boolean') {
|
|
83
|
+
button.setAttribute('aria-expanded', ariaExpanded);
|
|
84
|
+
}
|
|
85
|
+
if (ariaControls) {
|
|
86
|
+
button.setAttribute('aria-controls', ariaControls);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
focus() {
|
|
90
|
+
this.buttonEl?.focus();
|
|
91
|
+
const tb = this.toolbar;
|
|
92
|
+
if (tb) {
|
|
93
|
+
tb.focusCursor = tb.buttons.indexOf(this);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Sets the icon for the button.
|
|
98
|
+
*
|
|
99
|
+
* @param icon
|
|
100
|
+
* The icon to set.
|
|
101
|
+
*/
|
|
102
|
+
setIcon(icon) {
|
|
103
|
+
this.icon?.remove();
|
|
104
|
+
this.icon = SvgIcons.createGridIcon(icon);
|
|
105
|
+
this.buttonEl?.appendChild(this.icon);
|
|
106
|
+
}
|
|
107
|
+
setActive(active) {
|
|
108
|
+
this.isActive = active;
|
|
109
|
+
this.buttonEl?.classList.toggle('active', active);
|
|
110
|
+
this.renderActiveIndicator(active);
|
|
111
|
+
}
|
|
112
|
+
setHighlighted(highlighted) {
|
|
113
|
+
this.buttonEl?.classList.toggle('highlighted', highlighted);
|
|
114
|
+
const ariaExpanded = this.options.accessibility?.ariaExpanded;
|
|
115
|
+
if (typeof ariaExpanded === 'boolean') {
|
|
116
|
+
this.buttonEl?.setAttribute('aria-expanded', highlighted);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Destroys the button.
|
|
121
|
+
*/
|
|
122
|
+
destroy() {
|
|
123
|
+
this.removeEventListeners();
|
|
124
|
+
this.wrapper?.remove();
|
|
125
|
+
// Unregister from toolbar
|
|
126
|
+
this.toolbar?.buttons.splice(this.toolbar.buttons.indexOf(this), 1);
|
|
127
|
+
delete this.toolbar;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Initializes the state of the button.
|
|
131
|
+
*/
|
|
132
|
+
refreshState() {
|
|
133
|
+
// Do nothing, to be overridden by subclasses
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Handles the click event for the button.
|
|
137
|
+
*
|
|
138
|
+
* @param event
|
|
139
|
+
* The mouse event.
|
|
140
|
+
*/
|
|
141
|
+
clickHandler(event) {
|
|
142
|
+
this.options.onClick?.(event, this);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Renders the active indicator for the button.
|
|
146
|
+
*
|
|
147
|
+
* @param render
|
|
148
|
+
* Whether the active indicator should be rendered.
|
|
149
|
+
*/
|
|
150
|
+
renderActiveIndicator(render) {
|
|
151
|
+
const button = this.buttonEl;
|
|
152
|
+
if (!button) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
this.activeIndicator?.remove();
|
|
156
|
+
if (!render) {
|
|
157
|
+
delete this.activeIndicator;
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
this.activeIndicator = makeHTMLElement('div', {
|
|
161
|
+
className: Globals.getClassName('toolbarButtonActiveIndicator')
|
|
162
|
+
}, button);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Adds event listeners to the button.
|
|
166
|
+
*/
|
|
167
|
+
addEventListeners() {
|
|
168
|
+
const clickListener = (event) => {
|
|
169
|
+
this.clickHandler(event);
|
|
170
|
+
};
|
|
171
|
+
this.buttonEl?.addEventListener('click', clickListener);
|
|
172
|
+
this.eventListenerDestroyers.push(() => {
|
|
173
|
+
this.buttonEl?.removeEventListener('click', clickListener);
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Removes event listeners from the button.
|
|
178
|
+
*/
|
|
179
|
+
removeEventListeners() {
|
|
180
|
+
for (const destroyer of this.eventListenerDestroyers) {
|
|
181
|
+
destroyer();
|
|
182
|
+
}
|
|
183
|
+
this.eventListenerDestroyers.length = 0;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/* *
|
|
187
|
+
*
|
|
188
|
+
* Default Export
|
|
189
|
+
*
|
|
190
|
+
* */
|
|
191
|
+
export default ToolbarButton;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/* *
|
|
2
|
+
*
|
|
3
|
+
* Grid Cell Editing class.
|
|
4
|
+
*
|
|
5
|
+
* (c) 2020-2025 Highsoft AS
|
|
6
|
+
*
|
|
7
|
+
* License: www.highcharts.com/license
|
|
8
|
+
*
|
|
9
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
10
|
+
*
|
|
11
|
+
* Authors:
|
|
12
|
+
* - Dawid Dragula
|
|
13
|
+
* - Sebastian Bochan
|
|
14
|
+
*
|
|
15
|
+
* */
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
/* *
|
|
19
|
+
*
|
|
20
|
+
* Imports
|
|
21
|
+
*
|
|
22
|
+
* */
|
|
23
|
+
|
|
24
|
+
import DataTable from '../../../Data/DataTable';
|
|
25
|
+
import TableCell from '../../Core/Table/Body/TableCell';
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
/* *
|
|
29
|
+
*
|
|
30
|
+
* Interfaces
|
|
31
|
+
*
|
|
32
|
+
* */
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Interface for the edit mode content in a cell. It can be implemented by
|
|
36
|
+
* different types of edit mode contents.
|
|
37
|
+
*/
|
|
38
|
+
export interface EditModeContent<
|
|
39
|
+
E extends HTMLElement = HTMLElement
|
|
40
|
+
> {
|
|
41
|
+
/**
|
|
42
|
+
* Returns the main element of the edit mode content. In most cases it is an
|
|
43
|
+
* input element used to edit the cell value.
|
|
44
|
+
*/
|
|
45
|
+
getMainElement(): E;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Value of the edit mode cell content, parsed according to the column type.
|
|
49
|
+
*/
|
|
50
|
+
readonly value: DataTable.CellType;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Raw value of the edit mode cell content, in a string format.
|
|
54
|
+
*/
|
|
55
|
+
readonly rawValue: string;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Destroys the edit mode content, removing all event listeners
|
|
59
|
+
* and references to the DOM elements.
|
|
60
|
+
*/
|
|
61
|
+
destroy(): void;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Blur event handler for the edit mode content that can be overwritten in
|
|
65
|
+
* the Edit Mode Class.
|
|
66
|
+
*
|
|
67
|
+
* @param e
|
|
68
|
+
* The focus event that triggered the blur.
|
|
69
|
+
*/
|
|
70
|
+
blurHandler?: (e: FocusEvent) => void;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Key down event handler for the edit mode content that can be overwritten
|
|
74
|
+
* in the Edit Mode Class.
|
|
75
|
+
*
|
|
76
|
+
* @param e
|
|
77
|
+
* The keyboard event that triggered the key down.
|
|
78
|
+
*/
|
|
79
|
+
keyDownHandler?: (e: KeyboardEvent) => void;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Change event handler for the edit mode content that can be
|
|
83
|
+
* overwritten in the Edit Mode Class.
|
|
84
|
+
*
|
|
85
|
+
* @param e
|
|
86
|
+
* The event that triggered the change.
|
|
87
|
+
*/
|
|
88
|
+
changeHandler?: (e: Event) => void;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Indicates whether the edit mode should finish after a change event.
|
|
92
|
+
*/
|
|
93
|
+
readonly finishAfterChange: boolean;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Interface for rendering edit mode content in a cell. It allows the view
|
|
98
|
+
* renderers to be used in the edit mode of a cell.
|
|
99
|
+
*/
|
|
100
|
+
export interface EditModeRenderer {
|
|
101
|
+
/**
|
|
102
|
+
* Renders the edit mode content for a given cell.
|
|
103
|
+
*
|
|
104
|
+
* @param cell
|
|
105
|
+
* The cell to render the edit mode content for.
|
|
106
|
+
*
|
|
107
|
+
* @param parent
|
|
108
|
+
* Optional parent element to append the rendered content to. If not
|
|
109
|
+
* provided, the content will be rendered in the cell's main element.
|
|
110
|
+
*/
|
|
111
|
+
render(cell: TableCell, parent?: HTMLElement): EditModeContent;
|
|
112
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { EditModeContent } from './CellEditMode.js';
|
|
2
|
+
import TableCell from '../../Core/Table/Body/TableCell.js';
|
|
3
|
+
import Table from '../../Core/Table/Table.js';
|
|
4
|
+
/**
|
|
5
|
+
* The class that handles the manual editing of cells in the data grid.
|
|
6
|
+
*/
|
|
7
|
+
declare class CellEditing {
|
|
8
|
+
/**
|
|
9
|
+
* The viewport the edited cells are part of.
|
|
10
|
+
*/
|
|
11
|
+
readonly viewport: Table;
|
|
12
|
+
/**
|
|
13
|
+
* The cell being currently edited.
|
|
14
|
+
*/
|
|
15
|
+
editedCell?: TableCell;
|
|
16
|
+
/**
|
|
17
|
+
* The content of the cell edit mode, which represents a context containing
|
|
18
|
+
* the input field or similar element for applying changes to the cell
|
|
19
|
+
* value.
|
|
20
|
+
*/
|
|
21
|
+
editModeContent?: EditModeContent;
|
|
22
|
+
/**
|
|
23
|
+
* The container element for the cell edit mode, which is used to
|
|
24
|
+
* position the edit mode content correctly within the cell.
|
|
25
|
+
*/
|
|
26
|
+
private containerElement?;
|
|
27
|
+
constructor(viewport: Table);
|
|
28
|
+
/**
|
|
29
|
+
* Turns the cell into an editable input field.
|
|
30
|
+
*
|
|
31
|
+
* @param cell
|
|
32
|
+
* The cell that is to be edited.
|
|
33
|
+
*/
|
|
34
|
+
startEditing(cell: TableCell): void;
|
|
35
|
+
/**
|
|
36
|
+
* Stops the editing of the cell.
|
|
37
|
+
*
|
|
38
|
+
* @param submit
|
|
39
|
+
* Whether to save the value of the input to the cell. Defaults to true.
|
|
40
|
+
*
|
|
41
|
+
* @return
|
|
42
|
+
* Returns `true` if the cell was successfully stopped editing.
|
|
43
|
+
*/
|
|
44
|
+
stopEditing(submit?: boolean): boolean;
|
|
45
|
+
setA11yAttributes(valid: boolean): void;
|
|
46
|
+
/**
|
|
47
|
+
* Handles the blur event on the input field.
|
|
48
|
+
*/
|
|
49
|
+
private readonly onInputBlur;
|
|
50
|
+
/**
|
|
51
|
+
* Handles the change event on the input field.
|
|
52
|
+
*/
|
|
53
|
+
private readonly onInputChange;
|
|
54
|
+
/**
|
|
55
|
+
* Handles the keydown event on the input field. Cancels editing on escape
|
|
56
|
+
* and saves the value on enter.
|
|
57
|
+
*
|
|
58
|
+
* @param e
|
|
59
|
+
* The keyboard event.
|
|
60
|
+
*/
|
|
61
|
+
private readonly onInputKeyDown;
|
|
62
|
+
/**
|
|
63
|
+
* Renders the input field for the cell, focuses it and sets up event
|
|
64
|
+
* listeners.
|
|
65
|
+
*/
|
|
66
|
+
private render;
|
|
67
|
+
/**
|
|
68
|
+
* Removes event listeners and the input element.
|
|
69
|
+
*/
|
|
70
|
+
private destroy;
|
|
71
|
+
}
|
|
72
|
+
declare namespace CellEditing {
|
|
73
|
+
/**
|
|
74
|
+
* The class names used by the CellEditing functionality.
|
|
75
|
+
*/
|
|
76
|
+
const classNames: {
|
|
77
|
+
readonly cellEditingContainer: string;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export default CellEditing;
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/* *
|
|
2
|
+
*
|
|
3
|
+
* Grid Cell Editing class.
|
|
4
|
+
*
|
|
5
|
+
* (c) 2020-2025 Highsoft AS
|
|
6
|
+
*
|
|
7
|
+
* License: www.highcharts.com/license
|
|
8
|
+
*
|
|
9
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
10
|
+
*
|
|
11
|
+
* Authors:
|
|
12
|
+
* - Dawid Dragula
|
|
13
|
+
* - Sebastian Bochan
|
|
14
|
+
*
|
|
15
|
+
* */
|
|
16
|
+
'use strict';
|
|
17
|
+
import Globals from '../../Core/Globals.js';
|
|
18
|
+
import U from '../../../Core/Utilities.js';
|
|
19
|
+
const { fireEvent } = U;
|
|
20
|
+
/* *
|
|
21
|
+
*
|
|
22
|
+
* Class
|
|
23
|
+
*
|
|
24
|
+
* */
|
|
25
|
+
/**
|
|
26
|
+
* The class that handles the manual editing of cells in the data grid.
|
|
27
|
+
*/
|
|
28
|
+
class CellEditing {
|
|
29
|
+
/* *
|
|
30
|
+
*
|
|
31
|
+
* Constructor
|
|
32
|
+
*
|
|
33
|
+
* */
|
|
34
|
+
constructor(viewport) {
|
|
35
|
+
/**
|
|
36
|
+
* Handles the blur event on the input field.
|
|
37
|
+
*/
|
|
38
|
+
this.onInputBlur = () => {
|
|
39
|
+
if (!this.stopEditing()) {
|
|
40
|
+
this.editModeContent?.getMainElement().focus();
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Handles the change event on the input field.
|
|
45
|
+
*/
|
|
46
|
+
this.onInputChange = () => {
|
|
47
|
+
if (this.editModeContent?.finishAfterChange &&
|
|
48
|
+
!this.stopEditing()) {
|
|
49
|
+
this.editModeContent?.getMainElement().focus();
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Handles the keydown event on the input field. Cancels editing on escape
|
|
54
|
+
* and saves the value on enter.
|
|
55
|
+
*
|
|
56
|
+
* @param e
|
|
57
|
+
* The keyboard event.
|
|
58
|
+
*/
|
|
59
|
+
this.onInputKeyDown = (e) => {
|
|
60
|
+
const { key } = e;
|
|
61
|
+
e.stopPropagation();
|
|
62
|
+
if (key === 'Escape') {
|
|
63
|
+
this.stopEditing(false);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (key === 'Enter') {
|
|
67
|
+
if (this.editModeContent?.finishAfterChange) {
|
|
68
|
+
this.onInputChange();
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
this.stopEditing();
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
this.viewport = viewport;
|
|
75
|
+
}
|
|
76
|
+
/* *
|
|
77
|
+
*
|
|
78
|
+
* Methods
|
|
79
|
+
*
|
|
80
|
+
* */
|
|
81
|
+
/**
|
|
82
|
+
* Turns the cell into an editable input field.
|
|
83
|
+
*
|
|
84
|
+
* @param cell
|
|
85
|
+
* The cell that is to be edited.
|
|
86
|
+
*/
|
|
87
|
+
startEditing(cell) {
|
|
88
|
+
if (this.editedCell === cell || (
|
|
89
|
+
// If value is invalid, do not start new editing
|
|
90
|
+
this.editedCell && !this.stopEditing())) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
this.editedCell = cell;
|
|
94
|
+
cell.htmlElement.classList.add(Globals.getClassName('editedCell'));
|
|
95
|
+
this.render();
|
|
96
|
+
fireEvent(cell, 'startedEditing');
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Stops the editing of the cell.
|
|
100
|
+
*
|
|
101
|
+
* @param submit
|
|
102
|
+
* Whether to save the value of the input to the cell. Defaults to true.
|
|
103
|
+
*
|
|
104
|
+
* @return
|
|
105
|
+
* Returns `true` if the cell was successfully stopped editing.
|
|
106
|
+
*/
|
|
107
|
+
stopEditing(submit = true) {
|
|
108
|
+
const cell = this.editedCell;
|
|
109
|
+
const emContent = this.editModeContent;
|
|
110
|
+
if (!cell || !emContent) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
const { column } = cell;
|
|
114
|
+
const vp = column.viewport;
|
|
115
|
+
const newValue = emContent.value;
|
|
116
|
+
if (submit) {
|
|
117
|
+
const validationErrors = [];
|
|
118
|
+
if (!vp.validator.validate(cell, validationErrors)) {
|
|
119
|
+
vp.validator.initErrorBox(cell, validationErrors);
|
|
120
|
+
this.setA11yAttributes(false);
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
this.setA11yAttributes(true);
|
|
124
|
+
vp.validator.hide();
|
|
125
|
+
vp.validator.errorCell = void 0;
|
|
126
|
+
}
|
|
127
|
+
// Hide notification
|
|
128
|
+
this.viewport.validator.hide();
|
|
129
|
+
// Hide input
|
|
130
|
+
this.destroy();
|
|
131
|
+
cell.htmlElement.classList.remove(Globals.getClassName('editedCell'));
|
|
132
|
+
cell.htmlElement.focus();
|
|
133
|
+
const isValueChanged = cell.value !== newValue;
|
|
134
|
+
void cell.setValue(submit ? newValue : cell.value, submit && isValueChanged);
|
|
135
|
+
if (isValueChanged) {
|
|
136
|
+
fireEvent(cell, 'stoppedEditing', { submit });
|
|
137
|
+
}
|
|
138
|
+
delete this.editedCell;
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
141
|
+
setA11yAttributes(valid) {
|
|
142
|
+
const mainElement = this.editModeContent?.getMainElement();
|
|
143
|
+
if (!mainElement) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
if (!valid) {
|
|
147
|
+
mainElement.setAttribute('aria-invalid', 'true');
|
|
148
|
+
mainElement.setAttribute('aria-errormessage', 'notification-error');
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
mainElement.setAttribute('aria-invalid', 'false');
|
|
152
|
+
mainElement.setAttribute('aria-errormessage', '');
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Renders the input field for the cell, focuses it and sets up event
|
|
157
|
+
* listeners.
|
|
158
|
+
*/
|
|
159
|
+
render() {
|
|
160
|
+
const cell = this.editedCell;
|
|
161
|
+
if (!cell || !cell.column.editModeRenderer) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
this.containerElement = this.containerElement ||
|
|
165
|
+
document.createElement('div');
|
|
166
|
+
this.containerElement.className =
|
|
167
|
+
CellEditing.classNames.cellEditingContainer;
|
|
168
|
+
this.editedCell?.htmlElement.appendChild(this.containerElement);
|
|
169
|
+
this.editModeContent = cell.column.editModeRenderer?.render(cell, this.containerElement);
|
|
170
|
+
this.editModeContent.getMainElement().focus();
|
|
171
|
+
this.editModeContent.blurHandler = this.onInputBlur;
|
|
172
|
+
this.editModeContent.changeHandler = this.onInputChange;
|
|
173
|
+
this.editModeContent.keyDownHandler = this.onInputKeyDown;
|
|
174
|
+
const rules = cell.column.options?.cells?.editMode?.validationRules ||
|
|
175
|
+
[];
|
|
176
|
+
if (rules.includes('notEmpty')) {
|
|
177
|
+
this.editModeContent.getMainElement().setAttribute('aria-required', 'true');
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Removes event listeners and the input element.
|
|
182
|
+
*/
|
|
183
|
+
destroy() {
|
|
184
|
+
if (!this.editModeContent) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
this.editModeContent.destroy();
|
|
188
|
+
this.containerElement?.remove();
|
|
189
|
+
delete this.editModeContent;
|
|
190
|
+
delete this.containerElement;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/* *
|
|
194
|
+
*
|
|
195
|
+
* Namespace
|
|
196
|
+
*
|
|
197
|
+
* */
|
|
198
|
+
(function (CellEditing) {
|
|
199
|
+
/**
|
|
200
|
+
* The class names used by the CellEditing functionality.
|
|
201
|
+
*/
|
|
202
|
+
CellEditing.classNames = {
|
|
203
|
+
cellEditingContainer: Globals.classNamePrefix + 'cell-editing-container'
|
|
204
|
+
};
|
|
205
|
+
})(CellEditing || (CellEditing = {}));
|
|
206
|
+
/* *
|
|
207
|
+
*
|
|
208
|
+
* Default Export
|
|
209
|
+
*
|
|
210
|
+
* */
|
|
211
|
+
export default CellEditing;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type CellRendererType from '../CellRendering/CellRendererType';
|
|
2
|
+
import type { EditModeRenderer } from './CellEditMode';
|
|
3
|
+
import CellEditing from './CellEditing.js';
|
|
4
|
+
export type EditModeRendererType = Extract<CellRendererType, EditModeRenderer>;
|
|
5
|
+
export type EditModeRendererTypeName = EditModeRendererType['options']['type'];
|
|
6
|
+
/**
|
|
7
|
+
* The options for the cell edit mode functionality.
|
|
8
|
+
*/
|
|
9
|
+
export interface ColumnEditModeOptions {
|
|
10
|
+
/**
|
|
11
|
+
* Whether to enable the cell edit mode functionality.
|
|
12
|
+
*/
|
|
13
|
+
enabled?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* The edit mode renderer for the column.
|
|
16
|
+
*/
|
|
17
|
+
renderer?: EditModeRendererType['options'];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Accessibility options for the Grid cell editing functionality.
|
|
21
|
+
*/
|
|
22
|
+
export interface CellEditingLangA11yOptions {
|
|
23
|
+
/**
|
|
24
|
+
* An additional hint (a visually hidden span) read by the voice over
|
|
25
|
+
* after the cell value.
|
|
26
|
+
*
|
|
27
|
+
* @default 'Editable.'
|
|
28
|
+
*/
|
|
29
|
+
editable?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Accessibility lang options for the cell editing announcements.
|
|
32
|
+
*/
|
|
33
|
+
announcements?: {
|
|
34
|
+
/**
|
|
35
|
+
* The message when the cell editing started.
|
|
36
|
+
*
|
|
37
|
+
* @default 'Entered cell editing mode.'
|
|
38
|
+
*/
|
|
39
|
+
started?: string;
|
|
40
|
+
/**
|
|
41
|
+
* The message when the cell editing ended.
|
|
42
|
+
*
|
|
43
|
+
* @default 'Edited cell value.'
|
|
44
|
+
*/
|
|
45
|
+
edited?: string;
|
|
46
|
+
/**
|
|
47
|
+
* The message when the cell editing was cancelled.
|
|
48
|
+
*
|
|
49
|
+
* @default 'Editing cancelled.'
|
|
50
|
+
*/
|
|
51
|
+
cancelled?: string;
|
|
52
|
+
/**
|
|
53
|
+
* The message when the cell value is not valid. It precedes the
|
|
54
|
+
* error messages.
|
|
55
|
+
*
|
|
56
|
+
* @default 'Provided value is not valid.'
|
|
57
|
+
*/
|
|
58
|
+
notValid?: string;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
declare module '../../Core/Table/Table' {
|
|
62
|
+
export default interface Table {
|
|
63
|
+
/**
|
|
64
|
+
* The cell editing instance for the table.
|
|
65
|
+
*/
|
|
66
|
+
cellEditing?: CellEditing;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
declare module '../../Core/Table/Column' {
|
|
70
|
+
export default interface Column {
|
|
71
|
+
/**
|
|
72
|
+
* The edit mode renderer for the column.
|
|
73
|
+
*/
|
|
74
|
+
editModeRenderer?: EditModeRendererType;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
declare module '../../Core/Table/Body/TableCell' {
|
|
78
|
+
export default interface TableCell {
|
|
79
|
+
/**
|
|
80
|
+
* The HTML span element that contains the 'editable' hint for the cell.
|
|
81
|
+
*/
|
|
82
|
+
a11yEditableHint?: HTMLSpanElement;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
declare module '../GridEvents' {
|
|
86
|
+
interface CellEvents {
|
|
87
|
+
/**
|
|
88
|
+
* Callback function to be called after editing of cell value.
|
|
89
|
+
*/
|
|
90
|
+
afterEdit?: CellEventCallback;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
declare module '../../Core/Accessibility/A11yOptions' {
|
|
94
|
+
interface A11yAnnouncementsOptions {
|
|
95
|
+
/**
|
|
96
|
+
* Enable accessibility announcements for the cell editing.
|
|
97
|
+
*
|
|
98
|
+
* @default true
|
|
99
|
+
*/
|
|
100
|
+
cellEditing?: boolean;
|
|
101
|
+
}
|
|
102
|
+
interface LangAccessibilityOptions {
|
|
103
|
+
/**
|
|
104
|
+
* Language options for the accessibility descriptions in cell editing.
|
|
105
|
+
*/
|
|
106
|
+
cellEditing?: CellEditingLangA11yOptions;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
declare module '../../Core/Options' {
|
|
110
|
+
interface ColumnCellOptions {
|
|
111
|
+
/**
|
|
112
|
+
* Whether to enabled the cell edit mode functionality. It allows to
|
|
113
|
+
* edit the cell value in a separate input field that is displayed
|
|
114
|
+
* after double-clicking the cell or pressing the Enter key.
|
|
115
|
+
*/
|
|
116
|
+
editMode?: ColumnEditModeOptions;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* The possible types of the edit message.
|
|
121
|
+
*/
|
|
122
|
+
export type EditMsgType = 'started' | 'edited' | 'cancelled';
|
|
123
|
+
export default CellEditingComposition;
|