@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,428 @@
|
|
|
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 D from './Defaults.js';
|
|
12
|
+
const { defaultOptions, defaultTime } = D;
|
|
13
|
+
import G from './Globals.js';
|
|
14
|
+
const { pageLang } = G;
|
|
15
|
+
import U from './Utilities.js';
|
|
16
|
+
const { extend, getNestedProperty, isArray, isNumber, isObject, isString, pick, ucfirst } = U;
|
|
17
|
+
const helpers = {
|
|
18
|
+
// Built-in helpers
|
|
19
|
+
add: (a, b) => a + b,
|
|
20
|
+
divide: (a, b) => (b !== 0 ? a / b : ''),
|
|
21
|
+
// eslint-disable-next-line eqeqeq
|
|
22
|
+
eq: (a, b) => a == b,
|
|
23
|
+
each: function (arr) {
|
|
24
|
+
const match = arguments[arguments.length - 1];
|
|
25
|
+
return isArray(arr) ?
|
|
26
|
+
arr.map((item, i) => format(match.body, extend(isObject(item) ? item : { '@this': item }, {
|
|
27
|
+
'@index': i,
|
|
28
|
+
'@first': i === 0,
|
|
29
|
+
'@last': i === arr.length - 1
|
|
30
|
+
}))).join('') :
|
|
31
|
+
false;
|
|
32
|
+
},
|
|
33
|
+
ge: (a, b) => a >= b,
|
|
34
|
+
gt: (a, b) => a > b,
|
|
35
|
+
'if': (condition) => !!condition,
|
|
36
|
+
le: (a, b) => a <= b,
|
|
37
|
+
lt: (a, b) => a < b,
|
|
38
|
+
multiply: (a, b) => a * b,
|
|
39
|
+
// eslint-disable-next-line eqeqeq
|
|
40
|
+
ne: (a, b) => a != b,
|
|
41
|
+
subtract: (a, b) => a - b,
|
|
42
|
+
ucfirst,
|
|
43
|
+
unless: (condition) => !condition
|
|
44
|
+
};
|
|
45
|
+
const numberFormatCache = {};
|
|
46
|
+
/* *
|
|
47
|
+
*
|
|
48
|
+
* Functions
|
|
49
|
+
*
|
|
50
|
+
* */
|
|
51
|
+
// Internal convenience function
|
|
52
|
+
const isQuotedString = (str) => /^["'].+["']$/.test(str);
|
|
53
|
+
/**
|
|
54
|
+
* Formats a JavaScript date timestamp (milliseconds since Jan 1st 1970) into a
|
|
55
|
+
* human readable date string. The format is a subset of the formats for PHP's
|
|
56
|
+
* [strftime](https://www.php.net/manual/en/function.strftime.php) function.
|
|
57
|
+
* Additional formats can be given in the {@link Highcharts.dateFormats} hook.
|
|
58
|
+
*
|
|
59
|
+
* Since v6.0.5, all internal dates are formatted through the
|
|
60
|
+
* {@link Highcharts.Chart#time} instance to respect chart-level time settings.
|
|
61
|
+
* The `Highcharts.dateFormat` function only reflects global time settings set
|
|
62
|
+
* with `setOptions`.
|
|
63
|
+
*
|
|
64
|
+
* Supported format keys:
|
|
65
|
+
* - `%a`: Short weekday, like 'Mon'
|
|
66
|
+
* - `%A`: Long weekday, like 'Monday'
|
|
67
|
+
* - `%d`: Two digit day of the month, 01 to 31
|
|
68
|
+
* - `%e`: Day of the month, 1 through 31
|
|
69
|
+
* - `%w`: Day of the week, 0 through 6
|
|
70
|
+
* - `%b`: Short month, like 'Jan'
|
|
71
|
+
* - `%B`: Long month, like 'January'
|
|
72
|
+
* - `%m`: Two digit month number, 01 through 12
|
|
73
|
+
* - `%y`: Two digits year, like 09 for 2009
|
|
74
|
+
* - `%Y`: Four digits year, like 2009
|
|
75
|
+
* - `%H`: Two digits hours in 24h format, 00 through 23
|
|
76
|
+
* - `%k`: Hours in 24h format, 0 through 23
|
|
77
|
+
* - `%I`: Two digits hours in 12h format, 00 through 11
|
|
78
|
+
* - `%l`: Hours in 12h format, 1 through 12
|
|
79
|
+
* - `%M`: Two digits minutes, 00 through 59
|
|
80
|
+
* - `%p`: Upper case AM or PM
|
|
81
|
+
* - `%P`: Lower case AM or PM
|
|
82
|
+
* - `%S`: Two digits seconds, 00 through 59
|
|
83
|
+
* - `%L`: Milliseconds (naming from Ruby)
|
|
84
|
+
*
|
|
85
|
+
* @function Highcharts.dateFormat
|
|
86
|
+
*
|
|
87
|
+
* @param {string} format
|
|
88
|
+
* The desired format where various time representations are prefixed
|
|
89
|
+
* with `%`.
|
|
90
|
+
*
|
|
91
|
+
* @param {number} timestamp
|
|
92
|
+
* The JavaScript timestamp.
|
|
93
|
+
*
|
|
94
|
+
* @param {boolean} [upperCaseFirst=false]
|
|
95
|
+
* Upper case first letter in the return.
|
|
96
|
+
*
|
|
97
|
+
* @return {string}
|
|
98
|
+
* The formatted date.
|
|
99
|
+
*/
|
|
100
|
+
function dateFormat(format, timestamp, upperCaseFirst) {
|
|
101
|
+
return defaultTime.dateFormat(format, timestamp, upperCaseFirst);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Format a string according to a subset of the rules of Python's String.format
|
|
105
|
+
* method.
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* let s = Highcharts.format(
|
|
109
|
+
* 'The {color} fox was {len:.2f} feet long',
|
|
110
|
+
* { color: 'red', len: Math.PI }
|
|
111
|
+
* );
|
|
112
|
+
* // => The red fox was 3.14 feet long
|
|
113
|
+
*
|
|
114
|
+
* @function Highcharts.format
|
|
115
|
+
*
|
|
116
|
+
* @param {string} str
|
|
117
|
+
* The string to format.
|
|
118
|
+
*
|
|
119
|
+
* @param {Record<string, *>} ctx
|
|
120
|
+
* The context, a collection of key-value pairs where each key is
|
|
121
|
+
* replaced by its value.
|
|
122
|
+
*
|
|
123
|
+
* @param {Highcharts.Chart} [owner]
|
|
124
|
+
* A `Chart` or `Grid` instance used to get numberFormatter and time.
|
|
125
|
+
*
|
|
126
|
+
* @return {string}
|
|
127
|
+
* The formatted string.
|
|
128
|
+
*/
|
|
129
|
+
function format(str = '', ctx, owner) {
|
|
130
|
+
// Notice: using u flag will require a refactor for ES5 (#22450).
|
|
131
|
+
const regex = /\{([a-zA-Z\u00C0-\u017F\d:\.,;\-\/<>\[\]%_@+"'’= #\(\)]+)\}/g, // eslint-disable-line max-len
|
|
132
|
+
// The sub expression regex is the same as the top expression regex,
|
|
133
|
+
// but except parens and block helpers (#), and surrounded by parens
|
|
134
|
+
// instead of curly brackets.
|
|
135
|
+
subRegex = /\(([a-zA-Z\u00C0-\u017F\d:\.,;\-\/<>\[\]%_@+"'= ]+)\)/g, matches = [], floatRegex = /f$/, decRegex = /\.(\d)/, lang = owner?.options?.lang || defaultOptions.lang, time = owner?.time || defaultTime, numberFormatter = owner?.numberFormatter || numberFormat.bind(owner);
|
|
136
|
+
/*
|
|
137
|
+
* Get a literal or variable value inside a template expression. May be
|
|
138
|
+
* extended with other types like string or null if needed, but keep it
|
|
139
|
+
* small for now.
|
|
140
|
+
*/
|
|
141
|
+
const resolveProperty = (key = '') => {
|
|
142
|
+
let n;
|
|
143
|
+
// Literals
|
|
144
|
+
if (key === 'true') {
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
if (key === 'false') {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
if ((n = Number(key)).toString() === key) {
|
|
151
|
+
return n;
|
|
152
|
+
}
|
|
153
|
+
if (isQuotedString(key)) {
|
|
154
|
+
return key.slice(1, -1);
|
|
155
|
+
}
|
|
156
|
+
// Variables and constants
|
|
157
|
+
return getNestedProperty(key, ctx);
|
|
158
|
+
};
|
|
159
|
+
let match, currentMatch, depth = 0, hasSub;
|
|
160
|
+
// Parse and create tree
|
|
161
|
+
while ((match = regex.exec(str)) !== null) {
|
|
162
|
+
// When a sub expression is found, it is evaluated first, and the
|
|
163
|
+
// results recursively evaluated until no subexpression exists.
|
|
164
|
+
const mainMatch = match, subMatch = subRegex.exec(match[1]);
|
|
165
|
+
if (subMatch) {
|
|
166
|
+
match = subMatch;
|
|
167
|
+
hasSub = true;
|
|
168
|
+
}
|
|
169
|
+
if (!currentMatch?.isBlock) {
|
|
170
|
+
currentMatch = {
|
|
171
|
+
ctx,
|
|
172
|
+
expression: match[1],
|
|
173
|
+
find: match[0],
|
|
174
|
+
isBlock: match[1].charAt(0) === '#',
|
|
175
|
+
start: match.index,
|
|
176
|
+
startInner: match.index + match[0].length,
|
|
177
|
+
length: match[0].length
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
// Identify helpers
|
|
181
|
+
const fn = (currentMatch.isBlock ? mainMatch : match)[1].split(' ')[0].replace('#', '');
|
|
182
|
+
if (helpers[fn]) {
|
|
183
|
+
// Block helper, only 0 level is handled
|
|
184
|
+
if (currentMatch.isBlock && fn === currentMatch.fn) {
|
|
185
|
+
depth++;
|
|
186
|
+
}
|
|
187
|
+
if (!currentMatch.fn) {
|
|
188
|
+
currentMatch.fn = fn;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
// Closing a block helper
|
|
192
|
+
const startingElseSection = match[1] === 'else';
|
|
193
|
+
if (currentMatch.isBlock &&
|
|
194
|
+
currentMatch.fn && (match[1] === `/${currentMatch.fn}` ||
|
|
195
|
+
startingElseSection)) {
|
|
196
|
+
if (!depth) { // === 0
|
|
197
|
+
const start = currentMatch.startInner, body = str.substr(start, match.index - start);
|
|
198
|
+
// Either closing without an else section, or when encountering
|
|
199
|
+
// an else section
|
|
200
|
+
if (currentMatch.body === void 0) {
|
|
201
|
+
currentMatch.body = body;
|
|
202
|
+
currentMatch.startInner = match.index + match[0].length;
|
|
203
|
+
// The body exists already, so this is the else section
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
currentMatch.elseBody = body;
|
|
207
|
+
}
|
|
208
|
+
currentMatch.find += body + match[0];
|
|
209
|
+
if (!startingElseSection) {
|
|
210
|
+
matches.push(currentMatch);
|
|
211
|
+
currentMatch = void 0;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
else if (!startingElseSection) {
|
|
215
|
+
depth--;
|
|
216
|
+
}
|
|
217
|
+
// Common expression
|
|
218
|
+
}
|
|
219
|
+
else if (!currentMatch.isBlock) {
|
|
220
|
+
matches.push(currentMatch);
|
|
221
|
+
}
|
|
222
|
+
// Evaluate sub-matches one by one to prevent orphaned block closers
|
|
223
|
+
if (subMatch && !currentMatch?.isBlock) {
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
// Execute
|
|
228
|
+
matches.forEach((match) => {
|
|
229
|
+
const { body, elseBody, expression, fn } = match;
|
|
230
|
+
let replacement, i;
|
|
231
|
+
// Helper function
|
|
232
|
+
if (fn) {
|
|
233
|
+
// Pass the helpers the amount of arguments defined by the function,
|
|
234
|
+
// then the match as the last argument.
|
|
235
|
+
const args = [match], parts = [], len = expression.length;
|
|
236
|
+
let start = 0, startChar;
|
|
237
|
+
for (i = 0; i <= len; i++) {
|
|
238
|
+
const char = expression.charAt(i);
|
|
239
|
+
// Start of string
|
|
240
|
+
if (!startChar && (char === '"' || char === '\'')) {
|
|
241
|
+
startChar = char;
|
|
242
|
+
// End of string
|
|
243
|
+
}
|
|
244
|
+
else if (startChar === char) {
|
|
245
|
+
startChar = '';
|
|
246
|
+
}
|
|
247
|
+
if (!startChar &&
|
|
248
|
+
(char === ' ' || i === len)) {
|
|
249
|
+
parts.push(expression.substr(start, i - start));
|
|
250
|
+
start = i + 1;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
i = helpers[fn].length;
|
|
254
|
+
while (i--) {
|
|
255
|
+
args.unshift(resolveProperty(parts[i + 1]));
|
|
256
|
+
}
|
|
257
|
+
replacement = helpers[fn].apply(ctx, args);
|
|
258
|
+
// Block helpers may return true or false. They may also return a
|
|
259
|
+
// string, like the `each` helper.
|
|
260
|
+
if (match.isBlock && typeof replacement === 'boolean') {
|
|
261
|
+
replacement = format(replacement ? body : elseBody, ctx, owner);
|
|
262
|
+
}
|
|
263
|
+
// Simple variable replacement
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
const valueAndFormat = isQuotedString(expression) ?
|
|
267
|
+
[expression] : expression.split(':');
|
|
268
|
+
replacement = resolveProperty(valueAndFormat.shift() || '');
|
|
269
|
+
// Format the replacement
|
|
270
|
+
const isFloat = replacement % 1 !== 0;
|
|
271
|
+
if (typeof replacement === 'number' &&
|
|
272
|
+
(valueAndFormat.length || isFloat)) {
|
|
273
|
+
const segment = valueAndFormat.join(':');
|
|
274
|
+
if (floatRegex.test(segment) || isFloat) { // Float
|
|
275
|
+
const decimals = parseInt((segment.match(decRegex) || ['', '-1'])[1], 10);
|
|
276
|
+
if (replacement !== null) {
|
|
277
|
+
replacement = numberFormatter(replacement, decimals, lang.decimalPoint, segment.indexOf(',') > -1 ? lang.thousandsSep : '');
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
replacement = time.dateFormat(segment, replacement);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
// Use string literal in order to be preserved in the outer
|
|
285
|
+
// expression
|
|
286
|
+
subRegex.lastIndex = 0;
|
|
287
|
+
if (subRegex.test(match.find) && isString(replacement)) {
|
|
288
|
+
replacement = `"${replacement}"`;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
str = str.replace(match.find, pick(replacement, ''));
|
|
292
|
+
});
|
|
293
|
+
return hasSub ? format(str, ctx, owner) : str;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Format a number and return a string based on input settings.
|
|
297
|
+
*
|
|
298
|
+
* @sample highcharts/members/highcharts-numberformat/
|
|
299
|
+
* Custom number format
|
|
300
|
+
*
|
|
301
|
+
* @function Highcharts.numberFormat
|
|
302
|
+
*
|
|
303
|
+
* @param {number} number
|
|
304
|
+
* The input number to format.
|
|
305
|
+
*
|
|
306
|
+
* @param {number} decimals
|
|
307
|
+
* The amount of decimals. A value of -1 preserves the amount in the
|
|
308
|
+
* input number.
|
|
309
|
+
*
|
|
310
|
+
* @param {string} [decimalPoint]
|
|
311
|
+
* The decimal point, defaults to the one given in the lang options, or
|
|
312
|
+
* a dot.
|
|
313
|
+
*
|
|
314
|
+
* @param {string} [thousandsSep]
|
|
315
|
+
* The thousands separator, defaults to the one given in the lang
|
|
316
|
+
* options, or a space character.
|
|
317
|
+
*
|
|
318
|
+
* @return {string}
|
|
319
|
+
* The formatted number.
|
|
320
|
+
*/
|
|
321
|
+
function numberFormat(number, decimals, decimalPoint, thousandsSep) {
|
|
322
|
+
number = +number || 0;
|
|
323
|
+
decimals = +decimals;
|
|
324
|
+
let ret, fractionDigits, [mantissa, exp] = number.toString().split('e').map(Number);
|
|
325
|
+
const lang = this?.options?.lang || defaultOptions.lang, origDec = (number.toString().split('.')[1] || '').split('e')[0].length, firstDecimals = decimals, options = {};
|
|
326
|
+
decimalPoint ?? (decimalPoint = lang.decimalPoint);
|
|
327
|
+
thousandsSep ?? (thousandsSep = lang.thousandsSep);
|
|
328
|
+
if (decimals === -1) {
|
|
329
|
+
// Preserve decimals. Not huge numbers (#3793).
|
|
330
|
+
decimals = Math.min(origDec, 20);
|
|
331
|
+
}
|
|
332
|
+
else if (!isNumber(decimals)) {
|
|
333
|
+
decimals = 2;
|
|
334
|
+
}
|
|
335
|
+
else if (decimals && exp < 0) {
|
|
336
|
+
// Expose decimals from exponential notation (#7042)
|
|
337
|
+
fractionDigits = decimals + exp;
|
|
338
|
+
if (fractionDigits >= 0) {
|
|
339
|
+
// Remove too small part of the number while keeping the notation
|
|
340
|
+
mantissa = +mantissa.toExponential(fractionDigits).split('e')[0];
|
|
341
|
+
decimals = fractionDigits;
|
|
342
|
+
}
|
|
343
|
+
else {
|
|
344
|
+
// `fractionDigits < 0`
|
|
345
|
+
mantissa = Math.floor(mantissa);
|
|
346
|
+
if (decimals < 20) {
|
|
347
|
+
// Use number instead of exponential notation (#7405)
|
|
348
|
+
number = +(mantissa * Math.pow(10, exp)).toFixed(decimals);
|
|
349
|
+
}
|
|
350
|
+
else {
|
|
351
|
+
// Or zero
|
|
352
|
+
number = 0;
|
|
353
|
+
}
|
|
354
|
+
exp = 0;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
if (exp) {
|
|
358
|
+
decimals ?? (decimals = 2);
|
|
359
|
+
number = mantissa;
|
|
360
|
+
}
|
|
361
|
+
if (isNumber(decimals) && decimals >= 0) {
|
|
362
|
+
options.minimumFractionDigits = decimals;
|
|
363
|
+
options.maximumFractionDigits = decimals;
|
|
364
|
+
}
|
|
365
|
+
if (thousandsSep === '') {
|
|
366
|
+
options.useGrouping = false;
|
|
367
|
+
}
|
|
368
|
+
const hasSeparators = thousandsSep || decimalPoint, locale = hasSeparators ?
|
|
369
|
+
'en' : (this?.locale || lang.locale || pageLang), cacheKey = JSON.stringify(options) + locale, nf = numberFormatCache[cacheKey] ?? (numberFormatCache[cacheKey] = new Intl.NumberFormat(locale, options));
|
|
370
|
+
ret = nf.format(number);
|
|
371
|
+
// If thousandsSep or decimalPoint are set, fall back to using English
|
|
372
|
+
// format with string replacement for the separators.
|
|
373
|
+
if (hasSeparators) {
|
|
374
|
+
ret = ret
|
|
375
|
+
// Preliminary step to avoid re-swapping (#22402)
|
|
376
|
+
.replace(/([,\.])/g, '_$1')
|
|
377
|
+
.replace(/_\,/g, thousandsSep ?? ',')
|
|
378
|
+
.replace('_.', decimalPoint ?? '.');
|
|
379
|
+
}
|
|
380
|
+
if (
|
|
381
|
+
// Remove signed zero (#20564)
|
|
382
|
+
(!decimals && +ret === 0) ||
|
|
383
|
+
// Small numbers, no decimals (#14023)
|
|
384
|
+
(exp < 0 && !firstDecimals)) {
|
|
385
|
+
ret = '0';
|
|
386
|
+
}
|
|
387
|
+
if (exp && +ret !== 0) {
|
|
388
|
+
ret += 'e' + (exp < 0 ? '' : '+') + exp;
|
|
389
|
+
}
|
|
390
|
+
return ret;
|
|
391
|
+
}
|
|
392
|
+
/* *
|
|
393
|
+
*
|
|
394
|
+
* Default Export
|
|
395
|
+
*
|
|
396
|
+
* */
|
|
397
|
+
const Templating = {
|
|
398
|
+
dateFormat,
|
|
399
|
+
format,
|
|
400
|
+
helpers,
|
|
401
|
+
numberFormat
|
|
402
|
+
};
|
|
403
|
+
export default Templating;
|
|
404
|
+
/* *
|
|
405
|
+
* API Declarations
|
|
406
|
+
* */
|
|
407
|
+
/**
|
|
408
|
+
* @interface Highcharts.Templating
|
|
409
|
+
*
|
|
410
|
+
* The Highcharts.Templating interface provides a structure for defining
|
|
411
|
+
* helpers. Helpers can be used as conditional blocks or functions within
|
|
412
|
+
* expressions. Highcharts includes several built-in helpers and supports
|
|
413
|
+
* the addition of custom helpers.
|
|
414
|
+
*
|
|
415
|
+
* @see [More information](
|
|
416
|
+
* https://www.highcharts.com/docs/chart-concepts/templating#helpers)
|
|
417
|
+
*
|
|
418
|
+
* @example
|
|
419
|
+
* // Define a custom helper to return the absolute value of a number
|
|
420
|
+
* Highcharts.Templating.helpers.abs = value => Math.abs(value);
|
|
421
|
+
*
|
|
422
|
+
* // Usage in a format string
|
|
423
|
+
* format: 'Absolute value: {abs point.y}'
|
|
424
|
+
*
|
|
425
|
+
* @name Highcharts.Templating#helpers
|
|
426
|
+
* @type {Record<string, Function>}
|
|
427
|
+
*/
|
|
428
|
+
(''); // Keeps doclets above in file
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type TickPositionsArray from './Axis/TickPositionsArray';
|
|
2
|
+
import type TimeTicksInfoObject from './Axis/TimeTicksInfoObject';
|
|
3
|
+
import TimeBase from '../Shared/TimeBase.js';
|
|
4
|
+
declare module './Axis/TickPositionsArray' {
|
|
5
|
+
interface TickPositionsArray {
|
|
6
|
+
info?: TimeTicksInfoObject;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
declare class Time extends TimeBase {
|
|
10
|
+
/**
|
|
11
|
+
* Return an array with time positions distributed on round time values
|
|
12
|
+
* right and right after min and max. Used in datetime axes as well as for
|
|
13
|
+
* grouping data on a datetime axis.
|
|
14
|
+
*
|
|
15
|
+
* @function Highcharts.Time#getTimeTicks
|
|
16
|
+
*
|
|
17
|
+
* @param {Highcharts.TimeNormalizedObject} normalizedInterval
|
|
18
|
+
* The interval in axis values (ms) and the count
|
|
19
|
+
*
|
|
20
|
+
* @param {number} [min]
|
|
21
|
+
* The minimum in axis values
|
|
22
|
+
*
|
|
23
|
+
* @param {number} [max]
|
|
24
|
+
* The maximum in axis values
|
|
25
|
+
*
|
|
26
|
+
* @param {number} [startOfWeek=1]
|
|
27
|
+
*
|
|
28
|
+
* @return {Highcharts.AxisTickPositionsArray}
|
|
29
|
+
* Time positions
|
|
30
|
+
*/
|
|
31
|
+
getTimeTicks(normalizedInterval: Time.TimeNormalizedObject, min?: number, max?: number, startOfWeek?: number): TickPositionsArray;
|
|
32
|
+
}
|
|
33
|
+
declare namespace Time {
|
|
34
|
+
interface DateTimeFormatOptions extends Intl.DateTimeFormatOptions {
|
|
35
|
+
dateStyle?: 'full' | 'long' | 'medium' | 'short';
|
|
36
|
+
fractionalSecondDigits?: number;
|
|
37
|
+
prefix?: string;
|
|
38
|
+
suffix?: string;
|
|
39
|
+
timeStyle?: 'full' | 'long' | 'medium' | 'short';
|
|
40
|
+
}
|
|
41
|
+
type DateTimeFormat = string | DateTimeFormatOptions;
|
|
42
|
+
interface DateTimeLabelFormatObject {
|
|
43
|
+
from?: DateTimeFormat;
|
|
44
|
+
list?: DateTimeFormat[];
|
|
45
|
+
main: DateTimeFormat;
|
|
46
|
+
range?: boolean;
|
|
47
|
+
to?: DateTimeFormat;
|
|
48
|
+
}
|
|
49
|
+
type DateTimeLabelFormatOption = (DateTimeFormat | Array<string> | Time.DateTimeLabelFormatObject);
|
|
50
|
+
type DateTimeLabelFormatsOption = (Record<TimeUnit, DateTimeLabelFormatOption>);
|
|
51
|
+
interface TimeOptions {
|
|
52
|
+
Date?: any;
|
|
53
|
+
locale?: string | Array<string>;
|
|
54
|
+
timezone?: string;
|
|
55
|
+
timezoneOffset?: number;
|
|
56
|
+
useUTC?: boolean;
|
|
57
|
+
}
|
|
58
|
+
interface TimeFormatCallbackFunction {
|
|
59
|
+
(this: Time, timestamp: number): string;
|
|
60
|
+
}
|
|
61
|
+
interface TimeNormalizedObject {
|
|
62
|
+
count: number;
|
|
63
|
+
unitName: TimeUnit;
|
|
64
|
+
unitRange: number;
|
|
65
|
+
}
|
|
66
|
+
type TimeUnit = ('millisecond' | 'second' | 'minute' | 'hour' | 'day' | 'week' | 'month' | 'year');
|
|
67
|
+
type TimeUnitValue = ('Date' | 'Day' | 'FullYear' | 'Hours' | 'Milliseconds' | 'Minutes' | 'Month' | 'Seconds');
|
|
68
|
+
}
|
|
69
|
+
export default Time;
|
|
@@ -0,0 +1,172 @@
|
|
|
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 TimeBase from '../Shared/TimeBase.js';
|
|
12
|
+
import U from '../Core/Utilities.js';
|
|
13
|
+
const { defined, extend, timeUnits } = U;
|
|
14
|
+
/* *
|
|
15
|
+
*
|
|
16
|
+
* Constants
|
|
17
|
+
*
|
|
18
|
+
* */
|
|
19
|
+
class Time extends TimeBase {
|
|
20
|
+
/**
|
|
21
|
+
* Return an array with time positions distributed on round time values
|
|
22
|
+
* right and right after min and max. Used in datetime axes as well as for
|
|
23
|
+
* grouping data on a datetime axis.
|
|
24
|
+
*
|
|
25
|
+
* @function Highcharts.Time#getTimeTicks
|
|
26
|
+
*
|
|
27
|
+
* @param {Highcharts.TimeNormalizedObject} normalizedInterval
|
|
28
|
+
* The interval in axis values (ms) and the count
|
|
29
|
+
*
|
|
30
|
+
* @param {number} [min]
|
|
31
|
+
* The minimum in axis values
|
|
32
|
+
*
|
|
33
|
+
* @param {number} [max]
|
|
34
|
+
* The maximum in axis values
|
|
35
|
+
*
|
|
36
|
+
* @param {number} [startOfWeek=1]
|
|
37
|
+
*
|
|
38
|
+
* @return {Highcharts.AxisTickPositionsArray}
|
|
39
|
+
* Time positions
|
|
40
|
+
*/
|
|
41
|
+
getTimeTicks(normalizedInterval, min, max, startOfWeek) {
|
|
42
|
+
const time = this, tickPositions = [], higherRanks = {}, { count = 1, unitRange } = normalizedInterval;
|
|
43
|
+
let [year, month, dayOfMonth, hours, minutes, seconds] = time.toParts(min), milliseconds = (min || 0) % 1000, variableDayLength;
|
|
44
|
+
startOfWeek ?? (startOfWeek = 1);
|
|
45
|
+
if (defined(min)) { // #1300
|
|
46
|
+
milliseconds = unitRange >= timeUnits.second ?
|
|
47
|
+
0 : // #3935
|
|
48
|
+
count * Math.floor(milliseconds / count);
|
|
49
|
+
if (unitRange >= timeUnits.second) { // Second
|
|
50
|
+
seconds = unitRange >= timeUnits.minute ?
|
|
51
|
+
0 : // #3935
|
|
52
|
+
count * Math.floor(seconds / count);
|
|
53
|
+
}
|
|
54
|
+
if (unitRange >= timeUnits.minute) { // Minute
|
|
55
|
+
minutes = unitRange >= timeUnits.hour ?
|
|
56
|
+
0 :
|
|
57
|
+
count * Math.floor(minutes / count);
|
|
58
|
+
}
|
|
59
|
+
if (unitRange >= timeUnits.hour) { // Hour
|
|
60
|
+
hours = unitRange >= timeUnits.day ?
|
|
61
|
+
0 :
|
|
62
|
+
count * Math.floor(hours / count);
|
|
63
|
+
}
|
|
64
|
+
if (unitRange >= timeUnits.day) { // Day
|
|
65
|
+
dayOfMonth = unitRange >= timeUnits.month ?
|
|
66
|
+
1 :
|
|
67
|
+
Math.max(1, count * Math.floor(dayOfMonth / count));
|
|
68
|
+
}
|
|
69
|
+
if (unitRange >= timeUnits.month) { // Month
|
|
70
|
+
month = unitRange >= timeUnits.year ? 0 :
|
|
71
|
+
count * Math.floor(month / count);
|
|
72
|
+
}
|
|
73
|
+
if (unitRange >= timeUnits.year) { // Year
|
|
74
|
+
year -= year % count;
|
|
75
|
+
}
|
|
76
|
+
// Week is a special case that runs outside the hierarchy
|
|
77
|
+
if (unitRange === timeUnits.week) {
|
|
78
|
+
if (count) {
|
|
79
|
+
min = time.makeTime(year, month, dayOfMonth, hours, minutes, seconds, milliseconds);
|
|
80
|
+
}
|
|
81
|
+
// Get start of current week, independent of count
|
|
82
|
+
const weekday = this.dateTimeFormat({
|
|
83
|
+
timeZone: this.timezone,
|
|
84
|
+
weekday: 'narrow'
|
|
85
|
+
}, min, 'es'),
|
|
86
|
+
// Spanish weekday index
|
|
87
|
+
weekdayNo = 'DLMXJVS'.indexOf(weekday);
|
|
88
|
+
dayOfMonth += -weekdayNo + startOfWeek +
|
|
89
|
+
// We don't want to skip days that are before
|
|
90
|
+
// startOfWeek (#7051)
|
|
91
|
+
(weekdayNo < startOfWeek ? -7 : 0);
|
|
92
|
+
}
|
|
93
|
+
min = time.makeTime(year, month, dayOfMonth, hours, minutes, seconds, milliseconds);
|
|
94
|
+
// Handle local timezone offset
|
|
95
|
+
if (time.variableTimezone && defined(max)) {
|
|
96
|
+
// Detect whether we need to take the DST crossover into
|
|
97
|
+
// consideration. If we're crossing over DST, the day length may
|
|
98
|
+
// be 23h or 25h and we need to compute the exact clock time for
|
|
99
|
+
// each tick instead of just adding hours. This comes at a cost,
|
|
100
|
+
// so first we find out if it is needed (#4951).
|
|
101
|
+
variableDayLength = (
|
|
102
|
+
// Long range, assume we're crossing over.
|
|
103
|
+
max - min > 4 * timeUnits.month ||
|
|
104
|
+
// Short range, check if min and max are in different time
|
|
105
|
+
// zones.
|
|
106
|
+
time.getTimezoneOffset(min) !==
|
|
107
|
+
time.getTimezoneOffset(max));
|
|
108
|
+
}
|
|
109
|
+
// Iterate and add tick positions at appropriate values
|
|
110
|
+
let t = min, i = 1;
|
|
111
|
+
while (t < max) {
|
|
112
|
+
tickPositions.push(t);
|
|
113
|
+
// Increase the years
|
|
114
|
+
if (unitRange === timeUnits.year) {
|
|
115
|
+
t = time.makeTime(year + i * count, 0);
|
|
116
|
+
// Increase the months
|
|
117
|
+
}
|
|
118
|
+
else if (unitRange === timeUnits.month) {
|
|
119
|
+
t = time.makeTime(year, month + i * count);
|
|
120
|
+
// If we're using local time, the interval is not fixed as it
|
|
121
|
+
// jumps one hour at the DST crossover
|
|
122
|
+
}
|
|
123
|
+
else if (variableDayLength && (unitRange === timeUnits.day ||
|
|
124
|
+
unitRange === timeUnits.week)) {
|
|
125
|
+
t = time.makeTime(year, month, dayOfMonth +
|
|
126
|
+
i * count * (unitRange === timeUnits.day ? 1 : 7));
|
|
127
|
+
}
|
|
128
|
+
else if (variableDayLength &&
|
|
129
|
+
unitRange === timeUnits.hour &&
|
|
130
|
+
count > 1) {
|
|
131
|
+
// Make sure higher ranks are preserved across DST (#6797,
|
|
132
|
+
// #7621)
|
|
133
|
+
t = time.makeTime(year, month, dayOfMonth, hours + i * count);
|
|
134
|
+
// Else, the interval is fixed and we use simple addition
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
t += unitRange * count;
|
|
138
|
+
}
|
|
139
|
+
i++;
|
|
140
|
+
}
|
|
141
|
+
// Push the last time
|
|
142
|
+
tickPositions.push(t);
|
|
143
|
+
// Handle higher ranks. Mark new days if the time is on midnight
|
|
144
|
+
// (#950, #1649, #1760, #3349). Use a reasonable dropout threshold
|
|
145
|
+
// to prevent looping over dense data grouping (#6156).
|
|
146
|
+
if (unitRange <= timeUnits.hour && tickPositions.length < 10000) {
|
|
147
|
+
tickPositions.forEach((t) => {
|
|
148
|
+
if (
|
|
149
|
+
// Speed optimization, no need to run dateFormat unless
|
|
150
|
+
// we're on a full or half hour
|
|
151
|
+
t % 1800000 === 0 &&
|
|
152
|
+
// Check for local or global midnight
|
|
153
|
+
time.dateFormat('%H%M%S%L', t) === '000000000') {
|
|
154
|
+
higherRanks[t] = 'day';
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Record information on the chosen unit - for dynamic label formatter
|
|
160
|
+
tickPositions.info = extend(normalizedInterval, {
|
|
161
|
+
higherRanks,
|
|
162
|
+
totalRange: unitRange * count
|
|
163
|
+
});
|
|
164
|
+
return tickPositions;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/* *
|
|
168
|
+
*
|
|
169
|
+
* Default export
|
|
170
|
+
*
|
|
171
|
+
* */
|
|
172
|
+
export default Time;
|