@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,562 @@
|
|
|
1
|
+
/* *
|
|
2
|
+
*
|
|
3
|
+
* (c) 2010-2025 Torstein Honsi
|
|
4
|
+
*
|
|
5
|
+
* License: www.highcharts.com/license
|
|
6
|
+
*
|
|
7
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
8
|
+
*
|
|
9
|
+
* */
|
|
10
|
+
'use strict';
|
|
11
|
+
import H from '../../Globals.js';
|
|
12
|
+
const { SVG_NS, win } = H;
|
|
13
|
+
import U from '../../Utilities.js';
|
|
14
|
+
const { attr, createElement, css, error, isFunction, isString, objectEach, splat } = U;
|
|
15
|
+
const { trustedTypes } = win;
|
|
16
|
+
/* *
|
|
17
|
+
*
|
|
18
|
+
* Constants
|
|
19
|
+
*
|
|
20
|
+
* */
|
|
21
|
+
// Create the trusted type policy. This should not be exposed.
|
|
22
|
+
const trustedTypesPolicy = (trustedTypes &&
|
|
23
|
+
isFunction(trustedTypes.createPolicy) &&
|
|
24
|
+
trustedTypes.createPolicy('highcharts', {
|
|
25
|
+
createHTML: (s) => s
|
|
26
|
+
}));
|
|
27
|
+
const emptyHTML = trustedTypesPolicy ?
|
|
28
|
+
trustedTypesPolicy.createHTML('') :
|
|
29
|
+
'';
|
|
30
|
+
/* *
|
|
31
|
+
*
|
|
32
|
+
* Class
|
|
33
|
+
*
|
|
34
|
+
* */
|
|
35
|
+
/**
|
|
36
|
+
* The AST class represents an abstract syntax tree of HTML or SVG content. It
|
|
37
|
+
* can take HTML as an argument, parse it, optionally transform it to SVG, then
|
|
38
|
+
* perform sanitation before inserting it into the DOM.
|
|
39
|
+
*
|
|
40
|
+
* @class
|
|
41
|
+
* @name Highcharts.AST
|
|
42
|
+
*
|
|
43
|
+
* @param {string|Array<Highcharts.ASTNode>} source
|
|
44
|
+
* Either an HTML string or an ASTNode list to populate the tree.
|
|
45
|
+
*/
|
|
46
|
+
class AST {
|
|
47
|
+
/* *
|
|
48
|
+
*
|
|
49
|
+
* Static Functions
|
|
50
|
+
*
|
|
51
|
+
* */
|
|
52
|
+
/**
|
|
53
|
+
* Filter an object of SVG or HTML attributes against the allow list.
|
|
54
|
+
*
|
|
55
|
+
* @static
|
|
56
|
+
*
|
|
57
|
+
* @function Highcharts.AST#filterUserAttributes
|
|
58
|
+
*
|
|
59
|
+
* @param {Highcharts.SVGAttributes} attributes The attributes to filter
|
|
60
|
+
*
|
|
61
|
+
* @return {Highcharts.SVGAttributes}
|
|
62
|
+
* The filtered attributes
|
|
63
|
+
*/
|
|
64
|
+
static filterUserAttributes(attributes) {
|
|
65
|
+
objectEach(attributes, (val, key) => {
|
|
66
|
+
let valid = true;
|
|
67
|
+
if (AST.allowedAttributes.indexOf(key) === -1) {
|
|
68
|
+
valid = false;
|
|
69
|
+
}
|
|
70
|
+
if (['background', 'dynsrc', 'href', 'lowsrc', 'src']
|
|
71
|
+
.indexOf(key) !== -1) {
|
|
72
|
+
valid = isString(val) && AST.allowedReferences.some((ref) => val.indexOf(ref) === 0);
|
|
73
|
+
}
|
|
74
|
+
if (!valid) {
|
|
75
|
+
error(33, false, void 0, {
|
|
76
|
+
'Invalid attribute in config': `${key}`
|
|
77
|
+
});
|
|
78
|
+
delete attributes[key];
|
|
79
|
+
}
|
|
80
|
+
// #17753, < is not allowed in SVG attributes
|
|
81
|
+
if (isString(val) && attributes[key]) {
|
|
82
|
+
attributes[key] = val.replace(/</g, '<');
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
return attributes;
|
|
86
|
+
}
|
|
87
|
+
static parseStyle(style) {
|
|
88
|
+
return style
|
|
89
|
+
.split(';')
|
|
90
|
+
.reduce((styles, line) => {
|
|
91
|
+
const pair = line.split(':').map((s) => s.trim()), key = pair.shift();
|
|
92
|
+
if (key && pair.length) {
|
|
93
|
+
styles[key.replace(/-([a-z])/g, (g) => g[1].toUpperCase())] = pair.join(':'); // #17146
|
|
94
|
+
}
|
|
95
|
+
return styles;
|
|
96
|
+
}, {});
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Utility function to set html content for an element by passing in a
|
|
100
|
+
* markup string. The markup is safely parsed by the AST class to avoid
|
|
101
|
+
* XSS vulnerabilities. This function should be used instead of setting
|
|
102
|
+
* `innerHTML` in all cases where the content is not fully trusted.
|
|
103
|
+
*
|
|
104
|
+
* @static
|
|
105
|
+
* @function Highcharts.AST#setElementHTML
|
|
106
|
+
*
|
|
107
|
+
* @param {SVGDOMElement|HTMLDOMElement} el
|
|
108
|
+
* Node to set content of.
|
|
109
|
+
*
|
|
110
|
+
* @param {string} html
|
|
111
|
+
* Markup string
|
|
112
|
+
*/
|
|
113
|
+
static setElementHTML(el, html) {
|
|
114
|
+
el.innerHTML = AST.emptyHTML; // Clear previous
|
|
115
|
+
if (html) {
|
|
116
|
+
const ast = new AST(html);
|
|
117
|
+
ast.addToDOM(el);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/* *
|
|
121
|
+
*
|
|
122
|
+
* Constructor
|
|
123
|
+
*
|
|
124
|
+
* */
|
|
125
|
+
// Construct an AST from HTML markup, or wrap an array of existing AST nodes
|
|
126
|
+
constructor(source) {
|
|
127
|
+
this.nodes = typeof source === 'string' ?
|
|
128
|
+
this.parseMarkup(source) : source;
|
|
129
|
+
}
|
|
130
|
+
/* *
|
|
131
|
+
*
|
|
132
|
+
* Functions
|
|
133
|
+
*
|
|
134
|
+
* */
|
|
135
|
+
/**
|
|
136
|
+
* Add the tree defined as a hierarchical JS structure to the DOM
|
|
137
|
+
*
|
|
138
|
+
* @function Highcharts.AST#addToDOM
|
|
139
|
+
*
|
|
140
|
+
* @param {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement} parent
|
|
141
|
+
* The node where it should be added
|
|
142
|
+
*
|
|
143
|
+
* @return {Highcharts.HTMLDOMElement|Highcharts.SVGDOMElement}
|
|
144
|
+
* The inserted node.
|
|
145
|
+
*/
|
|
146
|
+
addToDOM(parent) {
|
|
147
|
+
/**
|
|
148
|
+
* @private
|
|
149
|
+
* @param {Highcharts.ASTNode} subtree
|
|
150
|
+
* HTML/SVG definition
|
|
151
|
+
* @param {Element} [subParent]
|
|
152
|
+
* parent node
|
|
153
|
+
* @return {Highcharts.SVGDOMElement|Highcharts.HTMLDOMElement}
|
|
154
|
+
* The inserted node.
|
|
155
|
+
*/
|
|
156
|
+
function recurse(subtree, subParent) {
|
|
157
|
+
let ret;
|
|
158
|
+
splat(subtree).forEach(function (item) {
|
|
159
|
+
const tagName = item.tagName;
|
|
160
|
+
const textNode = item.textContent ?
|
|
161
|
+
H.doc.createTextNode(item.textContent) :
|
|
162
|
+
void 0;
|
|
163
|
+
// Whether to ignore the AST filtering totally, #15345
|
|
164
|
+
const bypassHTMLFiltering = AST.bypassHTMLFiltering;
|
|
165
|
+
let node;
|
|
166
|
+
if (tagName) {
|
|
167
|
+
if (tagName === '#text') {
|
|
168
|
+
node = textNode;
|
|
169
|
+
}
|
|
170
|
+
else if (AST.allowedTags.indexOf(tagName) !== -1 ||
|
|
171
|
+
bypassHTMLFiltering) {
|
|
172
|
+
const NS = tagName === 'svg' ?
|
|
173
|
+
SVG_NS :
|
|
174
|
+
(subParent.namespaceURI || SVG_NS);
|
|
175
|
+
const element = H.doc.createElementNS(NS, tagName);
|
|
176
|
+
const attributes = item.attributes || {};
|
|
177
|
+
// Apply attributes from root of AST node, legacy from
|
|
178
|
+
// from before TextBuilder
|
|
179
|
+
objectEach(item, function (val, key) {
|
|
180
|
+
if (key !== 'tagName' &&
|
|
181
|
+
key !== 'attributes' &&
|
|
182
|
+
key !== 'children' &&
|
|
183
|
+
key !== 'style' &&
|
|
184
|
+
key !== 'textContent') {
|
|
185
|
+
attributes[key] = val;
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
attr(element, bypassHTMLFiltering ?
|
|
189
|
+
attributes :
|
|
190
|
+
AST.filterUserAttributes(attributes));
|
|
191
|
+
if (item.style) {
|
|
192
|
+
css(element, item.style);
|
|
193
|
+
}
|
|
194
|
+
// Add text content
|
|
195
|
+
if (textNode) {
|
|
196
|
+
element.appendChild(textNode);
|
|
197
|
+
}
|
|
198
|
+
// Recurse
|
|
199
|
+
recurse(item.children || [], element);
|
|
200
|
+
node = element;
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
error(33, false, void 0, {
|
|
204
|
+
'Invalid tagName in config': tagName
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
// Add to the tree
|
|
209
|
+
if (node) {
|
|
210
|
+
subParent.appendChild(node);
|
|
211
|
+
}
|
|
212
|
+
ret = node;
|
|
213
|
+
});
|
|
214
|
+
// Return last node added (on top level it's the only one)
|
|
215
|
+
return ret;
|
|
216
|
+
}
|
|
217
|
+
return recurse(this.nodes, parent);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Parse HTML/SVG markup into AST Node objects. Used internally from the
|
|
221
|
+
* constructor.
|
|
222
|
+
*
|
|
223
|
+
* @private
|
|
224
|
+
*
|
|
225
|
+
* @function Highcharts.AST#getNodesFromMarkup
|
|
226
|
+
*
|
|
227
|
+
* @param {string} markup The markup string.
|
|
228
|
+
*
|
|
229
|
+
* @return {Array<Highcharts.ASTNode>} The parsed nodes.
|
|
230
|
+
*/
|
|
231
|
+
parseMarkup(markup) {
|
|
232
|
+
const nodes = [];
|
|
233
|
+
markup = markup
|
|
234
|
+
.trim()
|
|
235
|
+
// The style attribute throws a warning when parsing when CSP is
|
|
236
|
+
// enabled (#6884), so use an alias and pick it up below
|
|
237
|
+
// Make all quotation marks parse correctly to DOM (#17627)
|
|
238
|
+
.replace(/ style=(["'])/g, ' data-style=$1');
|
|
239
|
+
let doc;
|
|
240
|
+
try {
|
|
241
|
+
doc = new DOMParser().parseFromString(trustedTypesPolicy ?
|
|
242
|
+
trustedTypesPolicy.createHTML(markup) :
|
|
243
|
+
markup, 'text/html');
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
// There are two cases where this fails:
|
|
247
|
+
// 1. IE9 and PhantomJS, where the DOMParser only supports parsing
|
|
248
|
+
// XML
|
|
249
|
+
// 2. Due to a Chromium issue where chart redraws are triggered by
|
|
250
|
+
// a `beforeprint` event (#16931),
|
|
251
|
+
// https://issues.chromium.org/issues/40222135
|
|
252
|
+
}
|
|
253
|
+
if (!doc) {
|
|
254
|
+
const body = createElement('div');
|
|
255
|
+
body.innerHTML = markup;
|
|
256
|
+
doc = { body };
|
|
257
|
+
}
|
|
258
|
+
const appendChildNodes = (node, addTo) => {
|
|
259
|
+
const tagName = node.nodeName.toLowerCase();
|
|
260
|
+
// Add allowed tags
|
|
261
|
+
const astNode = {
|
|
262
|
+
tagName
|
|
263
|
+
};
|
|
264
|
+
if (tagName === '#text') {
|
|
265
|
+
astNode.textContent = node.textContent || '';
|
|
266
|
+
}
|
|
267
|
+
const parsedAttributes = node.attributes;
|
|
268
|
+
// Add attributes
|
|
269
|
+
if (parsedAttributes) {
|
|
270
|
+
const attributes = {};
|
|
271
|
+
[].forEach.call(parsedAttributes, (attrib) => {
|
|
272
|
+
if (attrib.name === 'data-style') {
|
|
273
|
+
astNode.style = AST.parseStyle(attrib.value);
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
attributes[attrib.name] = attrib.value;
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
astNode.attributes = attributes;
|
|
280
|
+
}
|
|
281
|
+
// Handle children
|
|
282
|
+
if (node.childNodes.length) {
|
|
283
|
+
const children = [];
|
|
284
|
+
[].forEach.call(node.childNodes, (childNode) => {
|
|
285
|
+
appendChildNodes(childNode, children);
|
|
286
|
+
});
|
|
287
|
+
if (children.length) {
|
|
288
|
+
astNode.children = children;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
addTo.push(astNode);
|
|
292
|
+
};
|
|
293
|
+
[].forEach.call(doc.body.childNodes, (childNode) => appendChildNodes(childNode, nodes));
|
|
294
|
+
return nodes;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
/* *
|
|
298
|
+
*
|
|
299
|
+
* Static Properties
|
|
300
|
+
*
|
|
301
|
+
* */
|
|
302
|
+
/**
|
|
303
|
+
* The list of allowed SVG or HTML attributes, used for sanitizing
|
|
304
|
+
* potentially harmful content from the chart configuration before adding to
|
|
305
|
+
* the DOM.
|
|
306
|
+
*
|
|
307
|
+
* @see [Source code with default values](
|
|
308
|
+
* https://github.com/highcharts/highcharts/blob/master/ts/Core/Renderer/HTML/AST.ts#:~:text=public%20static%20allowedAttributes)
|
|
309
|
+
*
|
|
310
|
+
* @example
|
|
311
|
+
* // Allow a custom, trusted attribute
|
|
312
|
+
* Highcharts.AST.allowedAttributes.push('data-value');
|
|
313
|
+
*
|
|
314
|
+
* @name Highcharts.AST.allowedAttributes
|
|
315
|
+
* @type {Array<string>}
|
|
316
|
+
*/
|
|
317
|
+
AST.allowedAttributes = [
|
|
318
|
+
'alt',
|
|
319
|
+
'aria-controls',
|
|
320
|
+
'aria-describedby',
|
|
321
|
+
'aria-expanded',
|
|
322
|
+
'aria-haspopup',
|
|
323
|
+
'aria-hidden',
|
|
324
|
+
'aria-label',
|
|
325
|
+
'aria-labelledby',
|
|
326
|
+
'aria-live',
|
|
327
|
+
'aria-pressed',
|
|
328
|
+
'aria-readonly',
|
|
329
|
+
'aria-roledescription',
|
|
330
|
+
'aria-selected',
|
|
331
|
+
'class',
|
|
332
|
+
'clip-path',
|
|
333
|
+
'color',
|
|
334
|
+
'colspan',
|
|
335
|
+
'cx',
|
|
336
|
+
'cy',
|
|
337
|
+
'd',
|
|
338
|
+
'disabled',
|
|
339
|
+
'dx',
|
|
340
|
+
'dy',
|
|
341
|
+
'fill',
|
|
342
|
+
'filterUnits',
|
|
343
|
+
'flood-color',
|
|
344
|
+
'flood-opacity',
|
|
345
|
+
'height',
|
|
346
|
+
'href',
|
|
347
|
+
'id',
|
|
348
|
+
'in',
|
|
349
|
+
'in2',
|
|
350
|
+
'markerHeight',
|
|
351
|
+
'markerWidth',
|
|
352
|
+
'offset',
|
|
353
|
+
'opacity',
|
|
354
|
+
'operator',
|
|
355
|
+
'orient',
|
|
356
|
+
'padding',
|
|
357
|
+
'paddingLeft',
|
|
358
|
+
'paddingRight',
|
|
359
|
+
'patternUnits',
|
|
360
|
+
'r',
|
|
361
|
+
'radius',
|
|
362
|
+
'refX',
|
|
363
|
+
'refY',
|
|
364
|
+
'result',
|
|
365
|
+
'role',
|
|
366
|
+
'rowspan',
|
|
367
|
+
'scope',
|
|
368
|
+
'slope',
|
|
369
|
+
'src',
|
|
370
|
+
'startOffset',
|
|
371
|
+
'stdDeviation',
|
|
372
|
+
'stroke-linecap',
|
|
373
|
+
'stroke-width',
|
|
374
|
+
'stroke',
|
|
375
|
+
'style',
|
|
376
|
+
'summary',
|
|
377
|
+
'tabindex',
|
|
378
|
+
'tableValues',
|
|
379
|
+
'target',
|
|
380
|
+
'text-align',
|
|
381
|
+
'text-anchor',
|
|
382
|
+
'textAnchor',
|
|
383
|
+
'textLength',
|
|
384
|
+
'title',
|
|
385
|
+
'type',
|
|
386
|
+
'valign',
|
|
387
|
+
'width',
|
|
388
|
+
'x',
|
|
389
|
+
'x1',
|
|
390
|
+
'x2',
|
|
391
|
+
'xlink:href',
|
|
392
|
+
'y',
|
|
393
|
+
'y1',
|
|
394
|
+
'y2',
|
|
395
|
+
'zIndex'
|
|
396
|
+
];
|
|
397
|
+
/**
|
|
398
|
+
* The list of allowed references for referring attributes like `href` and
|
|
399
|
+
* `src`. Attribute values will only be allowed if they start with one of
|
|
400
|
+
* these strings.
|
|
401
|
+
*
|
|
402
|
+
* @see [Source code with default values](
|
|
403
|
+
* https://github.com/highcharts/highcharts/blob/master/ts/Core/Renderer/HTML/AST.ts#:~:text=public%20static%20allowedReferences)
|
|
404
|
+
*
|
|
405
|
+
* @example
|
|
406
|
+
* // Allow tel:
|
|
407
|
+
* Highcharts.AST.allowedReferences.push('tel:');
|
|
408
|
+
*
|
|
409
|
+
* @name Highcharts.AST.allowedReferences
|
|
410
|
+
* @type {Array<string>}
|
|
411
|
+
*/
|
|
412
|
+
AST.allowedReferences = [
|
|
413
|
+
'https://',
|
|
414
|
+
'http://',
|
|
415
|
+
'mailto:',
|
|
416
|
+
'/',
|
|
417
|
+
'../',
|
|
418
|
+
'./',
|
|
419
|
+
'#'
|
|
420
|
+
];
|
|
421
|
+
/**
|
|
422
|
+
* The list of allowed SVG or HTML tags, used for sanitizing potentially
|
|
423
|
+
* harmful content from the chart configuration before adding to the DOM.
|
|
424
|
+
*
|
|
425
|
+
* @see [Source code with default values](
|
|
426
|
+
* https://github.com/highcharts/highcharts/blob/master/ts/Core/Renderer/HTML/AST.ts#:~:text=public%20static%20allowedTags)
|
|
427
|
+
*
|
|
428
|
+
* @example
|
|
429
|
+
* // Allow a custom, trusted tag
|
|
430
|
+
* Highcharts.AST.allowedTags.push('blink'); // ;)
|
|
431
|
+
*
|
|
432
|
+
* @name Highcharts.AST.allowedTags
|
|
433
|
+
* @type {Array<string>}
|
|
434
|
+
*/
|
|
435
|
+
AST.allowedTags = [
|
|
436
|
+
'#text',
|
|
437
|
+
'a',
|
|
438
|
+
'abbr',
|
|
439
|
+
'b',
|
|
440
|
+
'br',
|
|
441
|
+
'button',
|
|
442
|
+
'caption',
|
|
443
|
+
'circle',
|
|
444
|
+
'clipPath',
|
|
445
|
+
'code',
|
|
446
|
+
'dd',
|
|
447
|
+
'defs',
|
|
448
|
+
'div',
|
|
449
|
+
'dl',
|
|
450
|
+
'dt',
|
|
451
|
+
'em',
|
|
452
|
+
'feComponentTransfer',
|
|
453
|
+
'feComposite',
|
|
454
|
+
'feDropShadow',
|
|
455
|
+
'feFlood',
|
|
456
|
+
'feFuncA',
|
|
457
|
+
'feFuncB',
|
|
458
|
+
'feFuncG',
|
|
459
|
+
'feFuncR',
|
|
460
|
+
'feGaussianBlur',
|
|
461
|
+
'feMerge',
|
|
462
|
+
'feMergeNode',
|
|
463
|
+
'feMorphology',
|
|
464
|
+
'feOffset',
|
|
465
|
+
'filter',
|
|
466
|
+
'h1',
|
|
467
|
+
'h2',
|
|
468
|
+
'h3',
|
|
469
|
+
'h4',
|
|
470
|
+
'h5',
|
|
471
|
+
'h6',
|
|
472
|
+
'hr',
|
|
473
|
+
'i',
|
|
474
|
+
'img',
|
|
475
|
+
'li',
|
|
476
|
+
'linearGradient',
|
|
477
|
+
'marker',
|
|
478
|
+
'ol',
|
|
479
|
+
'p',
|
|
480
|
+
'path',
|
|
481
|
+
'pattern',
|
|
482
|
+
'pre',
|
|
483
|
+
'rect',
|
|
484
|
+
'small',
|
|
485
|
+
'span',
|
|
486
|
+
'stop',
|
|
487
|
+
'strong',
|
|
488
|
+
'style',
|
|
489
|
+
'sub',
|
|
490
|
+
'sup',
|
|
491
|
+
'svg',
|
|
492
|
+
'table',
|
|
493
|
+
'tbody',
|
|
494
|
+
'td',
|
|
495
|
+
'text',
|
|
496
|
+
'textPath',
|
|
497
|
+
'th',
|
|
498
|
+
'thead',
|
|
499
|
+
'title',
|
|
500
|
+
'tr',
|
|
501
|
+
'tspan',
|
|
502
|
+
'u',
|
|
503
|
+
'ul'
|
|
504
|
+
];
|
|
505
|
+
AST.emptyHTML = emptyHTML;
|
|
506
|
+
/**
|
|
507
|
+
* Allow all custom SVG and HTML attributes, references and tags (together
|
|
508
|
+
* with potentially harmful ones) to be added to the DOM from the chart
|
|
509
|
+
* configuration. In other words, disable the allow-listing which is the
|
|
510
|
+
* primary functionality of the AST.
|
|
511
|
+
*
|
|
512
|
+
* WARNING: Setting this property to `true` while allowing untrusted user
|
|
513
|
+
* data in the chart configuration will expose your application to XSS
|
|
514
|
+
* security risks!
|
|
515
|
+
*
|
|
516
|
+
* Note that in case you want to allow a known set of tags or attributes,
|
|
517
|
+
* you should allow-list them instead of disabling the filtering totally.
|
|
518
|
+
* See [allowedAttributes](Highcharts.AST#.allowedAttributes),
|
|
519
|
+
* [allowedReferences](Highcharts.AST#.allowedReferences) and
|
|
520
|
+
* [allowedTags](Highcharts.AST#.allowedTags). The `bypassHTMLFiltering`
|
|
521
|
+
* setting is intended only for those cases where allow-listing is not
|
|
522
|
+
* practical, and the chart configuration already comes from a secure
|
|
523
|
+
* source.
|
|
524
|
+
*
|
|
525
|
+
* @example
|
|
526
|
+
* // Allow all custom attributes, references and tags (disable DOM XSS
|
|
527
|
+
* // filtering)
|
|
528
|
+
* Highcharts.AST.bypassHTMLFiltering = true;
|
|
529
|
+
*
|
|
530
|
+
* @name Highcharts.AST.bypassHTMLFiltering
|
|
531
|
+
* @static
|
|
532
|
+
*/
|
|
533
|
+
AST.bypassHTMLFiltering = false;
|
|
534
|
+
/* *
|
|
535
|
+
*
|
|
536
|
+
* Default Export
|
|
537
|
+
*
|
|
538
|
+
* */
|
|
539
|
+
export default AST;
|
|
540
|
+
/* *
|
|
541
|
+
*
|
|
542
|
+
* API Declarations
|
|
543
|
+
*
|
|
544
|
+
* */
|
|
545
|
+
/**
|
|
546
|
+
* Serialized form of an SVG/HTML definition, including children.
|
|
547
|
+
*
|
|
548
|
+
* @interface Highcharts.ASTNode
|
|
549
|
+
*/ /**
|
|
550
|
+
* @name Highcharts.ASTNode#attributes
|
|
551
|
+
* @type {Highcharts.SVGAttributes|undefined}
|
|
552
|
+
*/ /**
|
|
553
|
+
* @name Highcharts.ASTNode#children
|
|
554
|
+
* @type {Array<Highcharts.ASTNode>|undefined}
|
|
555
|
+
*/ /**
|
|
556
|
+
* @name Highcharts.ASTNode#tagName
|
|
557
|
+
* @type {string|undefined}
|
|
558
|
+
*/ /**
|
|
559
|
+
* @name Highcharts.ASTNode#textContent
|
|
560
|
+
* @type {string|undefined}
|
|
561
|
+
*/
|
|
562
|
+
(''); // Keeps doclets above in file
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type BBoxObject from '../BBoxObject';
|
|
2
|
+
import type CSSObject from '../CSSObject';
|
|
3
|
+
import type { HTMLDOMElement } from '../DOMElementType';
|
|
4
|
+
import type SVGRenderer from '../SVG/SVGRenderer.js';
|
|
5
|
+
import SVGElement from '../SVG/SVGElement.js';
|
|
6
|
+
declare module '../SVG/SVGRendererBase' {
|
|
7
|
+
interface SVGRendererBase {
|
|
8
|
+
/** @requires Core/Renderer/HTML/HTMLElement */
|
|
9
|
+
html(str: string, x: number, y: number): HTMLElement;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
declare class HTMLElement extends SVGElement {
|
|
13
|
+
static useForeignObject: boolean | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Compose
|
|
16
|
+
* @private
|
|
17
|
+
*/
|
|
18
|
+
static compose<T extends typeof SVGRenderer>(SVGRendererClass: T): void;
|
|
19
|
+
div?: HTMLDOMElement;
|
|
20
|
+
foreignObject?: SVGElement;
|
|
21
|
+
parentGroup?: SVGElement;
|
|
22
|
+
xCorr?: number;
|
|
23
|
+
yCorr?: number;
|
|
24
|
+
constructor(renderer: SVGRenderer, nodeName: 'span');
|
|
25
|
+
/**
|
|
26
|
+
* Get the correction in X and Y positioning as the element is rotated.
|
|
27
|
+
* @private
|
|
28
|
+
*/
|
|
29
|
+
private getSpanCorrection;
|
|
30
|
+
/**
|
|
31
|
+
* Apply CSS to HTML elements. This is used in text within SVG rendering.
|
|
32
|
+
* @private
|
|
33
|
+
*/
|
|
34
|
+
css(styles: CSSObject): this;
|
|
35
|
+
/**
|
|
36
|
+
* The useHTML method for calculating the bounding box based on offsets.
|
|
37
|
+
* Called internally from the `SVGElement.getBBox` function and subsequently
|
|
38
|
+
* rotated.
|
|
39
|
+
*
|
|
40
|
+
* @private
|
|
41
|
+
*/
|
|
42
|
+
htmlGetBBox(): BBoxObject;
|
|
43
|
+
/**
|
|
44
|
+
* Batch update styles and attributes related to transform
|
|
45
|
+
*
|
|
46
|
+
* @private
|
|
47
|
+
*/
|
|
48
|
+
updateTransform(): void;
|
|
49
|
+
/**
|
|
50
|
+
* Add the element to a group wrapper. For HTML elements, a parallel div
|
|
51
|
+
* will be created for each ancenstor SVG `g` element.
|
|
52
|
+
*
|
|
53
|
+
* @private
|
|
54
|
+
*/
|
|
55
|
+
add(parentGroup?: SVGElement): this;
|
|
56
|
+
/**
|
|
57
|
+
* Text setter
|
|
58
|
+
* @private
|
|
59
|
+
*/
|
|
60
|
+
textSetter(value: string): void;
|
|
61
|
+
/**
|
|
62
|
+
* Align setter
|
|
63
|
+
*
|
|
64
|
+
* @private
|
|
65
|
+
*/
|
|
66
|
+
alignSetter(value: 'left' | 'center' | 'right'): void;
|
|
67
|
+
/**
|
|
68
|
+
* Various setters which rely on update transform
|
|
69
|
+
* @private
|
|
70
|
+
*/
|
|
71
|
+
xSetter(value: number, key: string): void;
|
|
72
|
+
}
|
|
73
|
+
interface HTMLElement {
|
|
74
|
+
element: HTMLDOMElement;
|
|
75
|
+
}
|
|
76
|
+
export default HTMLElement;
|