@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,488 @@
|
|
|
1
|
+
/* *
|
|
2
|
+
*
|
|
3
|
+
* (c) 2009-2025 Highsoft AS
|
|
4
|
+
*
|
|
5
|
+
* License: www.highcharts.com/license
|
|
6
|
+
*
|
|
7
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
8
|
+
*
|
|
9
|
+
* Authors:
|
|
10
|
+
* - Sophie Bremer
|
|
11
|
+
*
|
|
12
|
+
* */
|
|
13
|
+
'use strict';
|
|
14
|
+
import U from '../../Core/Utilities.js';
|
|
15
|
+
const { isString } = U;
|
|
16
|
+
/* *
|
|
17
|
+
*
|
|
18
|
+
* Constants
|
|
19
|
+
*
|
|
20
|
+
* */
|
|
21
|
+
/**
|
|
22
|
+
* @private
|
|
23
|
+
*/
|
|
24
|
+
const booleanRegExp = /^(?:FALSE|TRUE)/;
|
|
25
|
+
/**
|
|
26
|
+
* `.`-separated decimal.
|
|
27
|
+
* @private
|
|
28
|
+
*/
|
|
29
|
+
const decimal1RegExp = /^[+\-]?\d+(?:\.\d+)?(?:e[+\-]\d+)?/;
|
|
30
|
+
/**
|
|
31
|
+
* `,`-separated decimal.
|
|
32
|
+
* @private
|
|
33
|
+
*/
|
|
34
|
+
const decimal2RegExp = /^[+\-]?\d+(?:,\d+)?(?:e[+\-]\d+)?/;
|
|
35
|
+
/**
|
|
36
|
+
* - Group 1: Function name
|
|
37
|
+
* @private
|
|
38
|
+
*/
|
|
39
|
+
const functionRegExp = /^([A-Z][A-Z\d\.]*)\(/;
|
|
40
|
+
/**
|
|
41
|
+
* @private
|
|
42
|
+
*/
|
|
43
|
+
const operatorRegExp = /^(?:[+\-*\/^<=>]|<=|=>)/;
|
|
44
|
+
/**
|
|
45
|
+
* - Group 1: Start column
|
|
46
|
+
* - Group 2: Start row
|
|
47
|
+
* - Group 3: End column
|
|
48
|
+
* - Group 4: End row
|
|
49
|
+
* @private
|
|
50
|
+
*/
|
|
51
|
+
const rangeA1RegExp = /^(\$?[A-Z]+)(\$?\d+)\:(\$?[A-Z]+)(\$?\d+)/;
|
|
52
|
+
/**
|
|
53
|
+
* - Group 1: Start row
|
|
54
|
+
* - Group 2: Start column
|
|
55
|
+
* - Group 3: End row
|
|
56
|
+
* - Group 4: End column
|
|
57
|
+
* @private
|
|
58
|
+
*/
|
|
59
|
+
const rangeR1C1RegExp = /^R(\d*|\[\d+\])C(\d*|\[\d+\])\:R(\d*|\[\d+\])C(\d*|\[\d+\])/;
|
|
60
|
+
/**
|
|
61
|
+
* - Group 1: Column
|
|
62
|
+
* - Group 2: Row
|
|
63
|
+
* @private
|
|
64
|
+
*/
|
|
65
|
+
const referenceA1RegExp = /^(\$?[A-Z]+)(\$?\d+)(?![\:C])/;
|
|
66
|
+
/**
|
|
67
|
+
* - Group 1: Row
|
|
68
|
+
* - Group 2: Column
|
|
69
|
+
* @private
|
|
70
|
+
*/
|
|
71
|
+
const referenceR1C1RegExp = /^R(\d*|\[\d+\])C(\d*|\[\d+\])(?!\:)/;
|
|
72
|
+
/* *
|
|
73
|
+
*
|
|
74
|
+
* Functions
|
|
75
|
+
*
|
|
76
|
+
* */
|
|
77
|
+
/**
|
|
78
|
+
* Extracts the inner string of the most outer parantheses.
|
|
79
|
+
*
|
|
80
|
+
* @private
|
|
81
|
+
*
|
|
82
|
+
* @param {string} text
|
|
83
|
+
* Text string to extract from.
|
|
84
|
+
*
|
|
85
|
+
* @return {string}
|
|
86
|
+
* Extracted parantheses. If not found an exception will be thrown.
|
|
87
|
+
*/
|
|
88
|
+
function extractParantheses(text) {
|
|
89
|
+
let parantheseLevel = 0;
|
|
90
|
+
for (let i = 0, iEnd = text.length, char, parantheseStart = 1; i < iEnd; ++i) {
|
|
91
|
+
char = text[i];
|
|
92
|
+
if (char === '(') {
|
|
93
|
+
if (!parantheseLevel) {
|
|
94
|
+
parantheseStart = i + 1;
|
|
95
|
+
}
|
|
96
|
+
++parantheseLevel;
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
if (char === ')') {
|
|
100
|
+
--parantheseLevel;
|
|
101
|
+
if (!parantheseLevel) {
|
|
102
|
+
return text.substring(parantheseStart, i);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (parantheseLevel > 0) {
|
|
107
|
+
const error = new Error('Incomplete parantheses.');
|
|
108
|
+
error.name = 'FormulaParseError';
|
|
109
|
+
throw error;
|
|
110
|
+
}
|
|
111
|
+
return '';
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Extracts the inner string value.
|
|
115
|
+
*
|
|
116
|
+
* @private
|
|
117
|
+
*
|
|
118
|
+
* @param {string} text
|
|
119
|
+
* Text string to extract from.
|
|
120
|
+
*
|
|
121
|
+
* @return {string}
|
|
122
|
+
* Extracted string. If not found an exception will be thrown.
|
|
123
|
+
*/
|
|
124
|
+
function extractString(text) {
|
|
125
|
+
let start = -1;
|
|
126
|
+
for (let i = 0, iEnd = text.length, char, escaping = false; i < iEnd; ++i) {
|
|
127
|
+
char = text[i];
|
|
128
|
+
if (char === '\\') {
|
|
129
|
+
escaping = !escaping;
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
if (escaping) {
|
|
133
|
+
escaping = false;
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
if (char === '"') {
|
|
137
|
+
if (start < 0) {
|
|
138
|
+
start = i;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
return text.substring(start + 1, i); // `ì` is excluding
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
const error = new Error('Incomplete string.');
|
|
146
|
+
error.name = 'FormulaParseError';
|
|
147
|
+
throw error;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Parses an argument string. Formula arrays with a single term will be
|
|
151
|
+
* simplified to the term.
|
|
152
|
+
*
|
|
153
|
+
* @private
|
|
154
|
+
*
|
|
155
|
+
* @param {string} text
|
|
156
|
+
* Argument string to parse.
|
|
157
|
+
*
|
|
158
|
+
* @param {boolean} alternativeSeparators
|
|
159
|
+
* Whether to expect `;` as argument separator and `,` as decimal separator.
|
|
160
|
+
*
|
|
161
|
+
* @return {Formula|Function|Range|Reference|Value}
|
|
162
|
+
* The recognized term structure.
|
|
163
|
+
*/
|
|
164
|
+
function parseArgument(text, alternativeSeparators) {
|
|
165
|
+
let match;
|
|
166
|
+
// Check for a R1C1:R1C1 range notation
|
|
167
|
+
match = text.match(rangeR1C1RegExp);
|
|
168
|
+
if (match) {
|
|
169
|
+
const beginColumnRelative = (match[2] === '' || match[2][0] === '[');
|
|
170
|
+
const beginRowRelative = (match[1] === '' || match[1][0] === '[');
|
|
171
|
+
const endColumnRelative = (match[4] === '' || match[4][0] === '[');
|
|
172
|
+
const endRowRelative = (match[3] === '' || match[3][0] === '[');
|
|
173
|
+
const range = {
|
|
174
|
+
type: 'range',
|
|
175
|
+
beginColumn: (beginColumnRelative ?
|
|
176
|
+
parseInt(match[2].substring(1, -1) || '0', 10) :
|
|
177
|
+
parseInt(match[2], 10) - 1),
|
|
178
|
+
beginRow: (beginRowRelative ?
|
|
179
|
+
parseInt(match[1].substring(1, -1) || '0', 10) :
|
|
180
|
+
parseInt(match[1], 10) - 1),
|
|
181
|
+
endColumn: (endColumnRelative ?
|
|
182
|
+
parseInt(match[4].substring(1, -1) || '0', 10) :
|
|
183
|
+
parseInt(match[4], 10) - 1),
|
|
184
|
+
endRow: (endRowRelative ?
|
|
185
|
+
parseInt(match[3].substring(1, -1) || '0', 10) :
|
|
186
|
+
parseInt(match[3], 10) - 1)
|
|
187
|
+
};
|
|
188
|
+
if (beginColumnRelative) {
|
|
189
|
+
range.beginColumnRelative = true;
|
|
190
|
+
}
|
|
191
|
+
if (beginRowRelative) {
|
|
192
|
+
range.beginRowRelative = true;
|
|
193
|
+
}
|
|
194
|
+
if (endColumnRelative) {
|
|
195
|
+
range.endColumnRelative = true;
|
|
196
|
+
}
|
|
197
|
+
if (endRowRelative) {
|
|
198
|
+
range.endRowRelative = true;
|
|
199
|
+
}
|
|
200
|
+
return range;
|
|
201
|
+
}
|
|
202
|
+
// Check for a A1:A1 range notation
|
|
203
|
+
match = text.match(rangeA1RegExp);
|
|
204
|
+
if (match) {
|
|
205
|
+
const beginColumnRelative = match[1][0] !== '$';
|
|
206
|
+
const beginRowRelative = match[2][0] !== '$';
|
|
207
|
+
const endColumnRelative = match[3][0] !== '$';
|
|
208
|
+
const endRowRelative = match[4][0] !== '$';
|
|
209
|
+
const range = {
|
|
210
|
+
type: 'range',
|
|
211
|
+
beginColumn: parseReferenceColumn(beginColumnRelative ?
|
|
212
|
+
match[1] :
|
|
213
|
+
match[1].substring(1)) - 1,
|
|
214
|
+
beginRow: parseInt(beginRowRelative ?
|
|
215
|
+
match[2] :
|
|
216
|
+
match[2].substring(1), 10) - 1,
|
|
217
|
+
endColumn: parseReferenceColumn(endColumnRelative ?
|
|
218
|
+
match[3] :
|
|
219
|
+
match[3].substring(1)) - 1,
|
|
220
|
+
endRow: parseInt(endRowRelative ?
|
|
221
|
+
match[4] :
|
|
222
|
+
match[4].substring(1), 10) - 1
|
|
223
|
+
};
|
|
224
|
+
if (beginColumnRelative) {
|
|
225
|
+
range.beginColumnRelative = true;
|
|
226
|
+
}
|
|
227
|
+
if (beginRowRelative) {
|
|
228
|
+
range.beginRowRelative = true;
|
|
229
|
+
}
|
|
230
|
+
if (endColumnRelative) {
|
|
231
|
+
range.endColumnRelative = true;
|
|
232
|
+
}
|
|
233
|
+
if (endRowRelative) {
|
|
234
|
+
range.endRowRelative = true;
|
|
235
|
+
}
|
|
236
|
+
return range;
|
|
237
|
+
}
|
|
238
|
+
// Fallback to formula processing for other pattern types
|
|
239
|
+
const formula = parseFormula(text, alternativeSeparators);
|
|
240
|
+
return (formula.length === 1 && typeof formula[0] !== 'string' ?
|
|
241
|
+
formula[0] :
|
|
242
|
+
formula);
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Parse arguments string inside function parantheses.
|
|
246
|
+
*
|
|
247
|
+
* @private
|
|
248
|
+
*
|
|
249
|
+
* @param {string} text
|
|
250
|
+
* Parantheses string of the function.
|
|
251
|
+
*
|
|
252
|
+
* @param {boolean} alternativeSeparators
|
|
253
|
+
* Whether to expect `;` as argument separator and `,` as decimal separator.
|
|
254
|
+
*
|
|
255
|
+
* @return {Highcharts.FormulaArguments}
|
|
256
|
+
* Parsed arguments array.
|
|
257
|
+
*/
|
|
258
|
+
function parseArguments(text, alternativeSeparators) {
|
|
259
|
+
const args = [], argumentsSeparator = (alternativeSeparators ? ';' : ',');
|
|
260
|
+
let parantheseLevel = 0, term = '';
|
|
261
|
+
for (let i = 0, iEnd = text.length, char; i < iEnd; ++i) {
|
|
262
|
+
char = text[i];
|
|
263
|
+
// Check for separator
|
|
264
|
+
if (char === argumentsSeparator &&
|
|
265
|
+
!parantheseLevel &&
|
|
266
|
+
term) {
|
|
267
|
+
args.push(parseArgument(term, alternativeSeparators));
|
|
268
|
+
term = '';
|
|
269
|
+
// Check for a quoted string before skip logic
|
|
270
|
+
}
|
|
271
|
+
else if (char === '"' &&
|
|
272
|
+
!parantheseLevel &&
|
|
273
|
+
!term) {
|
|
274
|
+
const string = extractString(text.substring(i));
|
|
275
|
+
args.push(string);
|
|
276
|
+
i += string.length + 1; // Only +1 to cover ++i in for-loop
|
|
277
|
+
// Skip space and check paranthesis nesting
|
|
278
|
+
}
|
|
279
|
+
else if (char !== ' ') {
|
|
280
|
+
term += char;
|
|
281
|
+
if (char === '(') {
|
|
282
|
+
++parantheseLevel;
|
|
283
|
+
}
|
|
284
|
+
else if (char === ')') {
|
|
285
|
+
--parantheseLevel;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
// Look for left-overs from last argument
|
|
290
|
+
if (!parantheseLevel && term) {
|
|
291
|
+
args.push(parseArgument(term, alternativeSeparators));
|
|
292
|
+
}
|
|
293
|
+
return args;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Checks if there's one of the following operator before the negative number
|
|
297
|
+
* value: '*', '/' or '^'.
|
|
298
|
+
*
|
|
299
|
+
* Used to properly indicate a negative value reference or negate a directly
|
|
300
|
+
* passed number value.
|
|
301
|
+
*/
|
|
302
|
+
function negativeReference(formula) {
|
|
303
|
+
const formulaLength = formula.length;
|
|
304
|
+
const priorFormula = formula[formulaLength - 2];
|
|
305
|
+
return (formula[formulaLength - 1] === '-' &&
|
|
306
|
+
isString(priorFormula) &&
|
|
307
|
+
!!priorFormula.match(/\*|\/|\^/));
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Converts a spreadsheet formula string into a formula array. Throws a
|
|
311
|
+
* `FormulaParserError` when the string can not be parsed.
|
|
312
|
+
*
|
|
313
|
+
* @private
|
|
314
|
+
* @function Formula.parseFormula
|
|
315
|
+
*
|
|
316
|
+
* @param {string} text
|
|
317
|
+
* Spreadsheet formula string, without the leading `=`.
|
|
318
|
+
*
|
|
319
|
+
* @param {boolean} alternativeSeparators
|
|
320
|
+
* * `false` to expect `,` between arguments and `.` in decimals.
|
|
321
|
+
* * `true` to expect `;` between arguments and `,` in decimals.
|
|
322
|
+
*
|
|
323
|
+
* @return {Formula.Formula}
|
|
324
|
+
* Formula array representing the string.
|
|
325
|
+
*/
|
|
326
|
+
function parseFormula(text, alternativeSeparators) {
|
|
327
|
+
const decimalRegExp = (alternativeSeparators ?
|
|
328
|
+
decimal2RegExp :
|
|
329
|
+
decimal1RegExp), formula = [];
|
|
330
|
+
let match, next = (text[0] === '=' ? text.substring(1) : text).trim();
|
|
331
|
+
while (next) {
|
|
332
|
+
// Check for an R1C1 reference notation
|
|
333
|
+
match = next.match(referenceR1C1RegExp);
|
|
334
|
+
if (match) {
|
|
335
|
+
const columnRelative = (match[2] === '' || match[2][0] === '[');
|
|
336
|
+
const rowRelative = (match[1] === '' || match[1][0] === '[');
|
|
337
|
+
const reference = {
|
|
338
|
+
type: 'reference',
|
|
339
|
+
column: (columnRelative ?
|
|
340
|
+
parseInt(match[2].substring(1, -1) || '0', 10) :
|
|
341
|
+
parseInt(match[2], 10) - 1),
|
|
342
|
+
row: (rowRelative ?
|
|
343
|
+
parseInt(match[1].substring(1, -1) || '0', 10) :
|
|
344
|
+
parseInt(match[1], 10) - 1)
|
|
345
|
+
};
|
|
346
|
+
if (columnRelative) {
|
|
347
|
+
reference.columnRelative = true;
|
|
348
|
+
}
|
|
349
|
+
if (rowRelative) {
|
|
350
|
+
reference.rowRelative = true;
|
|
351
|
+
}
|
|
352
|
+
if (negativeReference(formula)) {
|
|
353
|
+
formula.pop();
|
|
354
|
+
reference.isNegative = true;
|
|
355
|
+
}
|
|
356
|
+
formula.push(reference);
|
|
357
|
+
next = next.substring(match[0].length).trim();
|
|
358
|
+
continue;
|
|
359
|
+
}
|
|
360
|
+
// Check for an A1 reference notation
|
|
361
|
+
match = next.match(referenceA1RegExp);
|
|
362
|
+
if (match) {
|
|
363
|
+
const columnRelative = match[1][0] !== '$';
|
|
364
|
+
const rowRelative = match[2][0] !== '$';
|
|
365
|
+
const reference = {
|
|
366
|
+
type: 'reference',
|
|
367
|
+
column: parseReferenceColumn(columnRelative ?
|
|
368
|
+
match[1] :
|
|
369
|
+
match[1].substring(1)) - 1,
|
|
370
|
+
row: parseInt(rowRelative ?
|
|
371
|
+
match[2] :
|
|
372
|
+
match[2].substring(1), 10) - 1
|
|
373
|
+
};
|
|
374
|
+
if (columnRelative) {
|
|
375
|
+
reference.columnRelative = true;
|
|
376
|
+
}
|
|
377
|
+
if (rowRelative) {
|
|
378
|
+
reference.rowRelative = true;
|
|
379
|
+
}
|
|
380
|
+
if (negativeReference(formula)) {
|
|
381
|
+
formula.pop();
|
|
382
|
+
reference.isNegative = true;
|
|
383
|
+
}
|
|
384
|
+
formula.push(reference);
|
|
385
|
+
next = next.substring(match[0].length).trim();
|
|
386
|
+
continue;
|
|
387
|
+
}
|
|
388
|
+
// Check for a formula operator
|
|
389
|
+
match = next.match(operatorRegExp);
|
|
390
|
+
if (match) {
|
|
391
|
+
formula.push(match[0]);
|
|
392
|
+
next = next.substring(match[0].length).trim();
|
|
393
|
+
continue;
|
|
394
|
+
}
|
|
395
|
+
// Check for a boolean value
|
|
396
|
+
match = next.match(booleanRegExp);
|
|
397
|
+
if (match) {
|
|
398
|
+
formula.push(match[0] === 'TRUE');
|
|
399
|
+
next = next.substring(match[0].length).trim();
|
|
400
|
+
continue;
|
|
401
|
+
}
|
|
402
|
+
// Check for a number value
|
|
403
|
+
match = next.match(decimalRegExp);
|
|
404
|
+
if (match) {
|
|
405
|
+
let number = parseFloat(match[0]);
|
|
406
|
+
// If the current value is multiplication-related and the previous
|
|
407
|
+
// one is a minus sign, set the current value to negative and remove
|
|
408
|
+
// the minus sign.
|
|
409
|
+
if (negativeReference(formula)) {
|
|
410
|
+
formula.pop();
|
|
411
|
+
number = -number;
|
|
412
|
+
}
|
|
413
|
+
formula.push(number);
|
|
414
|
+
next = next.substring(match[0].length).trim();
|
|
415
|
+
continue;
|
|
416
|
+
}
|
|
417
|
+
// Check for a quoted string
|
|
418
|
+
if (next[0] === '"') {
|
|
419
|
+
const string = extractString(next);
|
|
420
|
+
formula.push(string.substring(1, -1));
|
|
421
|
+
next = next.substring(string.length + 2).trim();
|
|
422
|
+
continue;
|
|
423
|
+
}
|
|
424
|
+
// Check for a function
|
|
425
|
+
match = next.match(functionRegExp);
|
|
426
|
+
if (match) {
|
|
427
|
+
next = next.substring(match[1].length).trim();
|
|
428
|
+
const parantheses = extractParantheses(next);
|
|
429
|
+
formula.push({
|
|
430
|
+
type: 'function',
|
|
431
|
+
name: match[1],
|
|
432
|
+
args: parseArguments(parantheses, alternativeSeparators)
|
|
433
|
+
});
|
|
434
|
+
next = next.substring(parantheses.length + 2).trim();
|
|
435
|
+
continue;
|
|
436
|
+
}
|
|
437
|
+
// Check for a formula in parantheses
|
|
438
|
+
if (next[0] === '(') {
|
|
439
|
+
const paranteses = extractParantheses(next);
|
|
440
|
+
if (paranteses) {
|
|
441
|
+
formula
|
|
442
|
+
.push(parseFormula(paranteses, alternativeSeparators));
|
|
443
|
+
next = next.substring(paranteses.length + 2).trim();
|
|
444
|
+
continue;
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
// Something is not right
|
|
448
|
+
const position = text.length - next.length, error = new Error('Unexpected character `' +
|
|
449
|
+
text.substring(position, position + 1) +
|
|
450
|
+
'` at position ' + (position + 1) +
|
|
451
|
+
'. (`...' + text.substring(position - 5, position + 6) + '...`)');
|
|
452
|
+
error.name = 'FormulaParseError';
|
|
453
|
+
throw error;
|
|
454
|
+
}
|
|
455
|
+
return formula;
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Converts a reference column `A` of `A1` into a number. Supports endless sizes
|
|
459
|
+
* `ZZZ...`, just limited by integer precision.
|
|
460
|
+
*
|
|
461
|
+
* @private
|
|
462
|
+
*
|
|
463
|
+
* @param {string} text
|
|
464
|
+
* Column string to convert.
|
|
465
|
+
*
|
|
466
|
+
* @return {number}
|
|
467
|
+
* Converted column index.
|
|
468
|
+
*/
|
|
469
|
+
function parseReferenceColumn(text) {
|
|
470
|
+
let column = 0;
|
|
471
|
+
for (let i = 0, iEnd = text.length, code, factor = text.length - 1; i < iEnd; ++i) {
|
|
472
|
+
code = text.charCodeAt(i);
|
|
473
|
+
if (code >= 65 && code <= 90) {
|
|
474
|
+
column += (code - 64) * Math.pow(26, factor);
|
|
475
|
+
}
|
|
476
|
+
--factor;
|
|
477
|
+
}
|
|
478
|
+
return column;
|
|
479
|
+
}
|
|
480
|
+
/* *
|
|
481
|
+
*
|
|
482
|
+
* Default Export
|
|
483
|
+
*
|
|
484
|
+
* */
|
|
485
|
+
const FormulaParser = {
|
|
486
|
+
parseFormula
|
|
487
|
+
};
|
|
488
|
+
export default FormulaParser;
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import type DataTable from '../DataTable';
|
|
2
|
+
import type { Arguments, Formula, Range, Reference, Term, Value } from './FormulaTypes';
|
|
3
|
+
/**
|
|
4
|
+
* Formula processor might not process a term.
|
|
5
|
+
* @private
|
|
6
|
+
*/
|
|
7
|
+
export interface FormulaProcessError extends Error {
|
|
8
|
+
message: string;
|
|
9
|
+
name: 'FormulaProcessError';
|
|
10
|
+
}
|
|
11
|
+
export interface ProcessorFunction {
|
|
12
|
+
(args: Arguments, table?: DataTable, reference?: Reference): (Value | Array<Value>);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Converts non-number types to a logic number.
|
|
16
|
+
*
|
|
17
|
+
* @param {Highcharts.FormulaValue} value
|
|
18
|
+
* Value to convert.
|
|
19
|
+
*
|
|
20
|
+
* @return {number}
|
|
21
|
+
* Number value. `NaN` if not convertable.
|
|
22
|
+
*/
|
|
23
|
+
declare function asNumber(value: Value): number;
|
|
24
|
+
/**
|
|
25
|
+
* Converts an argument to Value and in case of a range to an array of Values.
|
|
26
|
+
*
|
|
27
|
+
* @function Highcharts.Formula.getArgumentValue
|
|
28
|
+
*
|
|
29
|
+
* @param {Highcharts.FormulaRange|Highcharts.FormulaTerm} arg
|
|
30
|
+
* Formula range or term to convert.
|
|
31
|
+
*
|
|
32
|
+
* @param {Highcharts.DataTable} [table]
|
|
33
|
+
* Table to use for references and ranges.
|
|
34
|
+
*
|
|
35
|
+
* @return {Highcharts.FormulaValue|Array<Highcharts.FormulaValue>}
|
|
36
|
+
* Converted value.
|
|
37
|
+
*/
|
|
38
|
+
declare function getArgumentValue(arg: (Range | Term), table?: DataTable): (Value | Array<Value>);
|
|
39
|
+
/**
|
|
40
|
+
* Converts all arguments to Values and in case of ranges to arrays of Values.
|
|
41
|
+
*
|
|
42
|
+
* @function Highcharts.Formula.getArgumentsValues
|
|
43
|
+
*
|
|
44
|
+
* @param {Highcharts.FormulaArguments} args
|
|
45
|
+
* Formula arguments to convert.
|
|
46
|
+
*
|
|
47
|
+
* @param {Highcharts.DataTable} [table]
|
|
48
|
+
* Table to use for references and ranges.
|
|
49
|
+
*
|
|
50
|
+
* @return {Array<(Highcharts.FormulaValue|Array<Highcharts.FormulaValue>)>}
|
|
51
|
+
* Converted values.
|
|
52
|
+
*/
|
|
53
|
+
declare function getArgumentsValues(args: Arguments, table?: DataTable): Array<(Value | Array<Value>)>;
|
|
54
|
+
/**
|
|
55
|
+
* Extracts cell values from a table for a given range.
|
|
56
|
+
*
|
|
57
|
+
* @function Highcharts.Formula.getRangeValues
|
|
58
|
+
*
|
|
59
|
+
* @param {Highcharts.FormulaRange} range
|
|
60
|
+
* Formula range to use.
|
|
61
|
+
*
|
|
62
|
+
* @param {Highcharts.DataTable} table
|
|
63
|
+
* Table to extract from.
|
|
64
|
+
*
|
|
65
|
+
* @return {Array<Highcharts.FormulaValue>}
|
|
66
|
+
* Extracted values.
|
|
67
|
+
*/
|
|
68
|
+
declare function getRangeValues(range: Range, table: DataTable): Array<Value>;
|
|
69
|
+
/**
|
|
70
|
+
* Extracts the cell value from a table for a given reference.
|
|
71
|
+
*
|
|
72
|
+
* @private
|
|
73
|
+
*
|
|
74
|
+
* @param {Highcharts.FormulaReference} reference
|
|
75
|
+
* Formula reference to use.
|
|
76
|
+
*
|
|
77
|
+
* @param {Highcharts.DataTable} table
|
|
78
|
+
* Table to extract from.
|
|
79
|
+
*
|
|
80
|
+
* @return {Highcharts.FormulaValue}
|
|
81
|
+
* Extracted value. 'undefined' might also indicate that the cell was not found.
|
|
82
|
+
*/
|
|
83
|
+
declare function getReferenceValue(reference: Reference, table: DataTable): Value;
|
|
84
|
+
/**
|
|
85
|
+
* Processes a formula array on the given table. If the formula does not contain
|
|
86
|
+
* references or ranges, then no table has to be provided.
|
|
87
|
+
*
|
|
88
|
+
* Performs formulas considering the operators precedence.
|
|
89
|
+
*
|
|
90
|
+
* // Example of the `2 * 3 + 4` formula:
|
|
91
|
+
* 2 -> values: [2], operators: []
|
|
92
|
+
* * -> values: [2], operators: [*]
|
|
93
|
+
* 3 -> values: [2, 3], operators: [*]
|
|
94
|
+
* // Since the higher precedence operator exists (* > +), perform it first.
|
|
95
|
+
* + -> values: [6], operators: [+]
|
|
96
|
+
* 4 -> values: [6, 4], operators: [+]
|
|
97
|
+
* // When non-higher precedence operators remain, perform rest calculations.
|
|
98
|
+
* -> values: [10], operators: []
|
|
99
|
+
*
|
|
100
|
+
* @private
|
|
101
|
+
* @function Highcharts.processFormula
|
|
102
|
+
*
|
|
103
|
+
* @param {Highcharts.Formula} formula
|
|
104
|
+
* Formula array to process.
|
|
105
|
+
*
|
|
106
|
+
* @param {Highcharts.DataTable} [table]
|
|
107
|
+
* Table to use for references and ranges.
|
|
108
|
+
*
|
|
109
|
+
* @return {Highcharts.FormulaValue}
|
|
110
|
+
* Result value of the process. `NaN` indicates an error.
|
|
111
|
+
*/
|
|
112
|
+
declare function processFormula(formula: Formula, table?: DataTable): Value;
|
|
113
|
+
/**
|
|
114
|
+
* Registers a function for the FormulaProcessor.
|
|
115
|
+
*
|
|
116
|
+
* @param {string} name
|
|
117
|
+
* Name of the function in spreadsheets notation with upper case.
|
|
118
|
+
*
|
|
119
|
+
* @param {Highcharts.FormulaFunction} processorFunction
|
|
120
|
+
* ProcessorFunction for the FormulaProcessor. This is an object so that it
|
|
121
|
+
* can take additional parameter for future validation routines.
|
|
122
|
+
*
|
|
123
|
+
* @return {boolean}
|
|
124
|
+
* Return true, if the ProcessorFunction has been registered.
|
|
125
|
+
*/
|
|
126
|
+
declare function registerProcessorFunction(name: string, processorFunction: ProcessorFunction): boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Translates relative references and ranges in-place.
|
|
129
|
+
*
|
|
130
|
+
* @param {Highcharts.Formula} formula
|
|
131
|
+
* Formula to translate references and ranges in.
|
|
132
|
+
*
|
|
133
|
+
* @param {number} [columnDelta=0]
|
|
134
|
+
* Column delta to translate to. Negative translate back.
|
|
135
|
+
*
|
|
136
|
+
* @param {number} [rowDelta=0]
|
|
137
|
+
* Row delta to translate to. Negative numbers translate back.
|
|
138
|
+
*
|
|
139
|
+
* @return {Highcharts.Formula}
|
|
140
|
+
* Formula with translated reference and ranges. This formula is equal to the
|
|
141
|
+
* first argument.
|
|
142
|
+
*/
|
|
143
|
+
declare function translateReferences<T extends Arguments | Formula>(formula: T, columnDelta?: number, rowDelta?: number): T;
|
|
144
|
+
declare const FormulaProcessor: {
|
|
145
|
+
asNumber: typeof asNumber;
|
|
146
|
+
getArgumentValue: typeof getArgumentValue;
|
|
147
|
+
getArgumentsValues: typeof getArgumentsValues;
|
|
148
|
+
getRangeValues: typeof getRangeValues;
|
|
149
|
+
getReferenceValue: typeof getReferenceValue;
|
|
150
|
+
processFormula: typeof processFormula;
|
|
151
|
+
processorFunctions: Record<string, ProcessorFunction>;
|
|
152
|
+
registerProcessorFunction: typeof registerProcessorFunction;
|
|
153
|
+
translateReferences: typeof translateReferences;
|
|
154
|
+
};
|
|
155
|
+
export default FormulaProcessor;
|