@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,351 @@
|
|
|
1
|
+
/* *
|
|
2
|
+
*
|
|
3
|
+
* Grid ColumnFiltering class
|
|
4
|
+
*
|
|
5
|
+
* (c) 2020-2025 Highsoft AS
|
|
6
|
+
*
|
|
7
|
+
* License: www.highcharts.com/license
|
|
8
|
+
*
|
|
9
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
10
|
+
*
|
|
11
|
+
* Authors:
|
|
12
|
+
* - Dawid Dragula
|
|
13
|
+
* - Sebastian Bochan
|
|
14
|
+
* - Kamil Kubik
|
|
15
|
+
*
|
|
16
|
+
* */
|
|
17
|
+
'use strict';
|
|
18
|
+
import U from '../../../../../Core/Utilities.js';
|
|
19
|
+
import GU from '../../../GridUtils.js';
|
|
20
|
+
import Globals from '../../../Globals.js';
|
|
21
|
+
import { conditionsMap } from './FilteringTypes.js';
|
|
22
|
+
const { defined, fireEvent } = U;
|
|
23
|
+
const { makeHTMLElement } = GU;
|
|
24
|
+
/* *
|
|
25
|
+
*
|
|
26
|
+
* Class
|
|
27
|
+
*
|
|
28
|
+
* */
|
|
29
|
+
/**
|
|
30
|
+
* Class that manages filtering for a dedicated column.
|
|
31
|
+
*/
|
|
32
|
+
class ColumnFiltering {
|
|
33
|
+
/* *
|
|
34
|
+
*
|
|
35
|
+
* Static Methods
|
|
36
|
+
*
|
|
37
|
+
* */
|
|
38
|
+
/**
|
|
39
|
+
* Parses a camel case string to a readable string and capitalizes the first
|
|
40
|
+
* letter.
|
|
41
|
+
*
|
|
42
|
+
* @param value
|
|
43
|
+
* The camel case string to parse.
|
|
44
|
+
*
|
|
45
|
+
* @returns
|
|
46
|
+
* The readable string with the first letter capitalized.
|
|
47
|
+
*/
|
|
48
|
+
static parseCamelCaseToReadable(value) {
|
|
49
|
+
const readable = value
|
|
50
|
+
.replace(/([A-Z])/g, ' $1')
|
|
51
|
+
.trim()
|
|
52
|
+
.toLowerCase()
|
|
53
|
+
.split(/\s+/).join(' ');
|
|
54
|
+
return readable.charAt(0).toUpperCase() + readable.slice(1);
|
|
55
|
+
}
|
|
56
|
+
/* *
|
|
57
|
+
*
|
|
58
|
+
* Constructor
|
|
59
|
+
*
|
|
60
|
+
* */
|
|
61
|
+
/**
|
|
62
|
+
* Constructs filtering controller for a dedicated column.
|
|
63
|
+
*
|
|
64
|
+
* @param column
|
|
65
|
+
* The filtered column.
|
|
66
|
+
*/
|
|
67
|
+
constructor(column) {
|
|
68
|
+
/**
|
|
69
|
+
* Handles the keydown event for the filtering content. Used externally,
|
|
70
|
+
* not in the class itself.
|
|
71
|
+
*
|
|
72
|
+
* @param e
|
|
73
|
+
* The keyboard event.
|
|
74
|
+
*/
|
|
75
|
+
this.onKeyDown = (e) => {
|
|
76
|
+
const contentOrder = [];
|
|
77
|
+
if (this.filterSelect && !this.filterSelect.disabled) {
|
|
78
|
+
contentOrder.push(this.filterSelect);
|
|
79
|
+
}
|
|
80
|
+
if (this.filterInput && !this.filterInput.disabled) {
|
|
81
|
+
contentOrder.push(this.filterInput);
|
|
82
|
+
}
|
|
83
|
+
if (this.clearButton && !this.clearButton.disabled) {
|
|
84
|
+
contentOrder.push(this.clearButton);
|
|
85
|
+
}
|
|
86
|
+
const direction = {
|
|
87
|
+
'ArrowDown': 1,
|
|
88
|
+
'ArrowUp': -1
|
|
89
|
+
}[e.key];
|
|
90
|
+
if (direction) {
|
|
91
|
+
e.preventDefault();
|
|
92
|
+
const currentIndex = contentOrder.indexOf(e.target);
|
|
93
|
+
const n = contentOrder.length;
|
|
94
|
+
contentOrder[(currentIndex + direction + n) % n].focus();
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (e.key === 'Enter') {
|
|
98
|
+
if (e.target === this.clearButton) {
|
|
99
|
+
e.preventDefault();
|
|
100
|
+
void this.set();
|
|
101
|
+
contentOrder[0]?.focus();
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
this.column = column;
|
|
107
|
+
}
|
|
108
|
+
/* *
|
|
109
|
+
*
|
|
110
|
+
* Methods
|
|
111
|
+
*
|
|
112
|
+
* */
|
|
113
|
+
/**
|
|
114
|
+
* Sets the value and condition for the filtering.
|
|
115
|
+
*
|
|
116
|
+
* @param value
|
|
117
|
+
* The value to set.
|
|
118
|
+
*
|
|
119
|
+
* @param condition
|
|
120
|
+
* The condition to set.
|
|
121
|
+
*/
|
|
122
|
+
async set(value, condition) {
|
|
123
|
+
if (this.filterInput) {
|
|
124
|
+
this.filterInput.value = value ?? '';
|
|
125
|
+
}
|
|
126
|
+
if (this.filterSelect) {
|
|
127
|
+
this.filterSelect.value =
|
|
128
|
+
condition ?? conditionsMap[this.column.dataType][0];
|
|
129
|
+
}
|
|
130
|
+
await this.applyFilter({ value, condition });
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Render the filtering content in the container.
|
|
134
|
+
*
|
|
135
|
+
* @param container
|
|
136
|
+
* The container element.
|
|
137
|
+
*/
|
|
138
|
+
renderFilteringContent(container) {
|
|
139
|
+
const column = this.column;
|
|
140
|
+
const columnType = column.dataType;
|
|
141
|
+
if (!column.options.filtering?.enabled) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
// Render the input wrapper.
|
|
145
|
+
const inputWrapper = makeHTMLElement('div', {
|
|
146
|
+
className: Globals.getClassName('columnFilterWrapper')
|
|
147
|
+
}, container);
|
|
148
|
+
this.renderConditionSelect(inputWrapper);
|
|
149
|
+
if (columnType !== 'boolean') {
|
|
150
|
+
this.renderFilteringInput(inputWrapper, columnType);
|
|
151
|
+
}
|
|
152
|
+
this.renderClearButton(inputWrapper);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Takes the filtering value and condition from the inputs and applies it
|
|
156
|
+
* to the column.
|
|
157
|
+
*/
|
|
158
|
+
applyFilterFromForm() {
|
|
159
|
+
const result = {
|
|
160
|
+
condition: this.filterSelect?.value
|
|
161
|
+
};
|
|
162
|
+
if (this.filterInput) {
|
|
163
|
+
result.value = this.filterInput.value;
|
|
164
|
+
}
|
|
165
|
+
if (result.condition &&
|
|
166
|
+
conditionsMap[this.column.dataType].includes(result.condition)) {
|
|
167
|
+
void this.applyFilter(result);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Applies the filtering to the column.
|
|
172
|
+
*
|
|
173
|
+
* @param condition
|
|
174
|
+
* The filtering condition.
|
|
175
|
+
*/
|
|
176
|
+
async applyFilter(condition) {
|
|
177
|
+
const viewport = this.column.viewport;
|
|
178
|
+
const querying = viewport.grid.querying;
|
|
179
|
+
const filteringController = querying.filtering;
|
|
180
|
+
const columnId = this.column.id;
|
|
181
|
+
const a11y = viewport.grid.accessibility;
|
|
182
|
+
const { value } = condition;
|
|
183
|
+
fireEvent(this.column, 'beforeFilter', {
|
|
184
|
+
target: this.column
|
|
185
|
+
});
|
|
186
|
+
const filteringApplied = this.isFilteringApplied();
|
|
187
|
+
const clearButton = this.clearButton;
|
|
188
|
+
if (clearButton && filteringApplied === clearButton.disabled) {
|
|
189
|
+
clearButton.disabled = !filteringApplied;
|
|
190
|
+
}
|
|
191
|
+
if (defined(value) && value !== '' && typeof value !== 'number') {
|
|
192
|
+
switch (this.column.dataType) {
|
|
193
|
+
case 'number':
|
|
194
|
+
condition.value = Number(value);
|
|
195
|
+
break;
|
|
196
|
+
case 'datetime':
|
|
197
|
+
condition.value = new Date(`${value}Z`).getTime();
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
// Update the userOptions.
|
|
202
|
+
void this.column.update({ filtering: condition }, false);
|
|
203
|
+
filteringController.addColumnFilterCondition(columnId, condition);
|
|
204
|
+
this.disableInputIfNeeded();
|
|
205
|
+
await querying.proceed();
|
|
206
|
+
await viewport.updateRows();
|
|
207
|
+
a11y?.userFilteredColumn({
|
|
208
|
+
...condition,
|
|
209
|
+
columnId,
|
|
210
|
+
rowsCount: viewport.rows.length
|
|
211
|
+
}, filteringApplied);
|
|
212
|
+
fireEvent(this.column, 'afterFilter', {
|
|
213
|
+
target: this.column
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Render the filtering input element, based on the column type.
|
|
218
|
+
*
|
|
219
|
+
* @param inputWrapper
|
|
220
|
+
* Reference to the input wrapper.
|
|
221
|
+
*
|
|
222
|
+
* @param columnType
|
|
223
|
+
* Reference to the column type.
|
|
224
|
+
*/
|
|
225
|
+
renderFilteringInput(inputWrapper, columnType) {
|
|
226
|
+
// Render the input element.
|
|
227
|
+
this.filterInput = makeHTMLElement('input', {}, inputWrapper);
|
|
228
|
+
this.filterInput.setAttribute('tabindex', '-1');
|
|
229
|
+
const column = this.column;
|
|
230
|
+
this.filterInput.setAttribute('id', 'filter-input-' + column.viewport.grid.id + '-' + column.id);
|
|
231
|
+
this.filterInput.placeholder = 'Value...';
|
|
232
|
+
if (columnType === 'number') {
|
|
233
|
+
this.filterInput.type = 'number';
|
|
234
|
+
}
|
|
235
|
+
else if (columnType === 'datetime') {
|
|
236
|
+
this.filterInput.type = 'date';
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
this.filterInput.type = 'text';
|
|
240
|
+
this.filterInput.classList.add(Globals.getClassName('icon'), Globals.getClassName('iconSearch'));
|
|
241
|
+
}
|
|
242
|
+
// Assign the default input value.
|
|
243
|
+
const { value } = this.column.options.filtering ?? {};
|
|
244
|
+
if (value || value === 0) {
|
|
245
|
+
this.filterInput.value = columnType === 'datetime' ?
|
|
246
|
+
column.viewport.grid.time.dateFormat('%Y-%m-%d', Number(value)) :
|
|
247
|
+
value.toString();
|
|
248
|
+
}
|
|
249
|
+
if (this.filterSelect) {
|
|
250
|
+
this.disableInputIfNeeded();
|
|
251
|
+
}
|
|
252
|
+
const eventTypes = {
|
|
253
|
+
string: ['keyup'],
|
|
254
|
+
number: ['keyup', 'change'],
|
|
255
|
+
datetime: ['change']
|
|
256
|
+
};
|
|
257
|
+
for (const eventType of eventTypes[columnType]) {
|
|
258
|
+
this.filterInput.addEventListener(eventType, () => {
|
|
259
|
+
this.applyFilterFromForm();
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Render the condition select element.
|
|
265
|
+
*
|
|
266
|
+
* @param inputWrapper
|
|
267
|
+
* Reference to the input wrapper.
|
|
268
|
+
*/
|
|
269
|
+
renderConditionSelect(inputWrapper) {
|
|
270
|
+
// Render the select element.
|
|
271
|
+
this.filterSelect = makeHTMLElement('select', {}, inputWrapper);
|
|
272
|
+
this.filterSelect.setAttribute('tabindex', '-1');
|
|
273
|
+
const column = this.column;
|
|
274
|
+
this.filterSelect.setAttribute('id', 'filter-select-' + column.viewport.grid.id + '-' + column.id);
|
|
275
|
+
const conditions = conditionsMap[column.dataType];
|
|
276
|
+
const langConditions = this.column.viewport.grid.options
|
|
277
|
+
?.lang?.columnFilteringConditions ?? {};
|
|
278
|
+
// Render the options.
|
|
279
|
+
for (const condition of conditions) {
|
|
280
|
+
const optionElement = document.createElement('option');
|
|
281
|
+
optionElement.value = condition;
|
|
282
|
+
optionElement.textContent = langConditions[condition] ??
|
|
283
|
+
ColumnFiltering.parseCamelCaseToReadable(condition);
|
|
284
|
+
this.filterSelect.appendChild(optionElement);
|
|
285
|
+
}
|
|
286
|
+
// Use condition from options or first available condition as default.
|
|
287
|
+
const filteringCondition = this.column.options.filtering?.condition;
|
|
288
|
+
if (filteringCondition && conditions.includes(filteringCondition)) {
|
|
289
|
+
this.filterSelect.value = filteringCondition;
|
|
290
|
+
}
|
|
291
|
+
else {
|
|
292
|
+
this.filterSelect.value = conditions[0];
|
|
293
|
+
}
|
|
294
|
+
this.disableInputIfNeeded();
|
|
295
|
+
// Attach event listener.
|
|
296
|
+
this.filterSelect.addEventListener('change', () => {
|
|
297
|
+
this.applyFilterFromForm();
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
renderClearButton(inputWrapper) {
|
|
301
|
+
this.clearButton = makeHTMLElement('button', {
|
|
302
|
+
className: Globals.getClassName('clearFilterButton'),
|
|
303
|
+
innerText: 'Clear filter' // TODO: Lang
|
|
304
|
+
}, inputWrapper);
|
|
305
|
+
this.clearButton.setAttribute('tabindex', '-1');
|
|
306
|
+
this.clearButton.disabled = !this.isFilteringApplied();
|
|
307
|
+
this.clearButton.addEventListener('click', () => {
|
|
308
|
+
void this.set();
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Checks if filtering is applied to the column.
|
|
313
|
+
*
|
|
314
|
+
* @returns
|
|
315
|
+
* `true` if filtering is applied to the column, `false` otherwise.
|
|
316
|
+
*/
|
|
317
|
+
isFilteringApplied() {
|
|
318
|
+
const { filterSelect: select, filterInput: input } = this;
|
|
319
|
+
const { dataType } = this.column;
|
|
320
|
+
const condition = select?.value;
|
|
321
|
+
if (dataType === 'boolean') {
|
|
322
|
+
return condition !== 'all';
|
|
323
|
+
}
|
|
324
|
+
if (condition === 'empty' || condition === 'notEmpty') {
|
|
325
|
+
return true;
|
|
326
|
+
}
|
|
327
|
+
return input?.value !== '';
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Disables the input element if the condition is `empty` or `notEmpty`.
|
|
331
|
+
*/
|
|
332
|
+
disableInputIfNeeded() {
|
|
333
|
+
const { filterSelect: select, filterInput: input } = this;
|
|
334
|
+
const condition = select?.value;
|
|
335
|
+
if (!input || !select) {
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
if (condition === 'empty' || condition === 'notEmpty') {
|
|
339
|
+
input.disabled = true;
|
|
340
|
+
}
|
|
341
|
+
else if (input?.disabled) {
|
|
342
|
+
input.disabled = false;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
/* *
|
|
347
|
+
*
|
|
348
|
+
* Default Export
|
|
349
|
+
*
|
|
350
|
+
* */
|
|
351
|
+
export default ColumnFiltering;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type Row from '../../Row.js';
|
|
2
|
+
import type Column from '../../Column.js';
|
|
3
|
+
import HeaderCell from '../../Header/HeaderCell.js';
|
|
4
|
+
/**
|
|
5
|
+
* Represents a cell in the data grid header.
|
|
6
|
+
*/
|
|
7
|
+
declare class FilterCell extends HeaderCell {
|
|
8
|
+
column: Column;
|
|
9
|
+
constructor(row: Row, column: Column);
|
|
10
|
+
render(): void;
|
|
11
|
+
protected onKeyDown(e: KeyboardEvent): void;
|
|
12
|
+
protected onClick(e: MouseEvent): void;
|
|
13
|
+
}
|
|
14
|
+
export default FilterCell;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/* *
|
|
2
|
+
*
|
|
3
|
+
* Grid Filter Cell class
|
|
4
|
+
*
|
|
5
|
+
* (c) 2020-2025 Highsoft AS
|
|
6
|
+
*
|
|
7
|
+
* License: www.highcharts.com/license
|
|
8
|
+
*
|
|
9
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
10
|
+
*
|
|
11
|
+
* Authors:
|
|
12
|
+
* - Dawid Dragula
|
|
13
|
+
*
|
|
14
|
+
* */
|
|
15
|
+
'use strict';
|
|
16
|
+
import HeaderCell from '../../Header/HeaderCell.js';
|
|
17
|
+
import U from '../../../../../Core/Utilities.js';
|
|
18
|
+
const { fireEvent } = U;
|
|
19
|
+
/* *
|
|
20
|
+
*
|
|
21
|
+
* Class
|
|
22
|
+
*
|
|
23
|
+
* */
|
|
24
|
+
/**
|
|
25
|
+
* Represents a cell in the data grid header.
|
|
26
|
+
*/
|
|
27
|
+
class FilterCell extends HeaderCell {
|
|
28
|
+
/* *
|
|
29
|
+
*
|
|
30
|
+
* Constructor
|
|
31
|
+
*
|
|
32
|
+
* */
|
|
33
|
+
constructor(row, column) {
|
|
34
|
+
const trueHeader = column.header;
|
|
35
|
+
super(row, column);
|
|
36
|
+
column.header = trueHeader;
|
|
37
|
+
}
|
|
38
|
+
/* *
|
|
39
|
+
*
|
|
40
|
+
* Methods
|
|
41
|
+
*
|
|
42
|
+
* */
|
|
43
|
+
render() {
|
|
44
|
+
const { column } = this;
|
|
45
|
+
if (!column) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
// Render content of th element
|
|
49
|
+
this.row.htmlElement.appendChild(this.htmlElement);
|
|
50
|
+
this.htmlElement.setAttribute('scope', 'col');
|
|
51
|
+
this.htmlElement.setAttribute('data-column-id', column.id);
|
|
52
|
+
// Add user column classname
|
|
53
|
+
if (column.options.className) {
|
|
54
|
+
this.htmlElement.classList.add(...column.options.className.split(/\s+/g));
|
|
55
|
+
}
|
|
56
|
+
this.setCustomClassName(column.options.header?.className);
|
|
57
|
+
fireEvent(this, 'afterRender', { column, filtering: true });
|
|
58
|
+
}
|
|
59
|
+
onKeyDown(e) {
|
|
60
|
+
this.column.filtering?.onKeyDown(e);
|
|
61
|
+
if (e.target === this.htmlElement) {
|
|
62
|
+
if (e.key === 'Enter') {
|
|
63
|
+
this.column.filtering?.filterSelect?.focus();
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
super.onKeyDown(e);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
if (e.key === 'Escape') {
|
|
71
|
+
this.htmlElement.focus();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
onClick(e) {
|
|
76
|
+
if (e.target === this.htmlElement) {
|
|
77
|
+
this.htmlElement.focus();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/* *
|
|
82
|
+
*
|
|
83
|
+
* Default Export
|
|
84
|
+
*
|
|
85
|
+
* */
|
|
86
|
+
export default FilterCell;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type Table from '../../Table.js';
|
|
2
|
+
import type Column from '../../Column.js';
|
|
3
|
+
import FilterCell from './FilterCell.js';
|
|
4
|
+
import HeaderRow from '../../Header/HeaderRow.js';
|
|
5
|
+
/**
|
|
6
|
+
* Represents a special filtering row in the data grid header.
|
|
7
|
+
*/
|
|
8
|
+
declare class FilterRow extends HeaderRow {
|
|
9
|
+
/**
|
|
10
|
+
* Constructs a filtering row in the Grid's header.
|
|
11
|
+
*
|
|
12
|
+
* @param viewport
|
|
13
|
+
* The Grid Table instance which the row belongs to.
|
|
14
|
+
*/
|
|
15
|
+
constructor(viewport: Table);
|
|
16
|
+
createCell(column: Column): FilterCell;
|
|
17
|
+
renderContent(): void;
|
|
18
|
+
}
|
|
19
|
+
export default FilterRow;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/* *
|
|
2
|
+
*
|
|
3
|
+
* Grid FilteringRow class
|
|
4
|
+
*
|
|
5
|
+
* (c) 2020-2025 Highsoft AS
|
|
6
|
+
*
|
|
7
|
+
* License: www.highcharts.com/license
|
|
8
|
+
*
|
|
9
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
10
|
+
*
|
|
11
|
+
* Authors:
|
|
12
|
+
* - Dawid Dragula
|
|
13
|
+
*
|
|
14
|
+
* */
|
|
15
|
+
'use strict';
|
|
16
|
+
import FilterCell from './FilterCell.js';
|
|
17
|
+
import Globals from '../../../Globals.js';
|
|
18
|
+
import HeaderRow from '../../Header/HeaderRow.js';
|
|
19
|
+
/* *
|
|
20
|
+
*
|
|
21
|
+
* Class
|
|
22
|
+
*
|
|
23
|
+
* */
|
|
24
|
+
/**
|
|
25
|
+
* Represents a special filtering row in the data grid header.
|
|
26
|
+
*/
|
|
27
|
+
class FilterRow extends HeaderRow {
|
|
28
|
+
/* *
|
|
29
|
+
*
|
|
30
|
+
* Constructor
|
|
31
|
+
*
|
|
32
|
+
* */
|
|
33
|
+
/**
|
|
34
|
+
* Constructs a filtering row in the Grid's header.
|
|
35
|
+
*
|
|
36
|
+
* @param viewport
|
|
37
|
+
* The Grid Table instance which the row belongs to.
|
|
38
|
+
*/
|
|
39
|
+
constructor(viewport) {
|
|
40
|
+
super(viewport, (viewport.header?.levels ?? 0) + 1 // Level (1-based)
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
/* *
|
|
44
|
+
*
|
|
45
|
+
* Methods
|
|
46
|
+
*
|
|
47
|
+
* */
|
|
48
|
+
createCell(column) {
|
|
49
|
+
return new FilterCell(this, column);
|
|
50
|
+
}
|
|
51
|
+
renderContent() {
|
|
52
|
+
const vp = this.viewport;
|
|
53
|
+
const enabledColumns = vp.grid.enabledColumns || [];
|
|
54
|
+
vp.theadElement?.appendChild(this.htmlElement);
|
|
55
|
+
this.htmlElement.classList.add(Globals.getClassName('headerRow'));
|
|
56
|
+
for (let i = 0, iEnd = vp.columns.length; i < iEnd; i++) {
|
|
57
|
+
const column = vp.columns[i];
|
|
58
|
+
if (enabledColumns?.indexOf(column.id) < 0) {
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
const cell = this.createCell(column);
|
|
62
|
+
cell.render();
|
|
63
|
+
if (column.options.filtering?.inline) {
|
|
64
|
+
column.filtering?.renderFilteringContent(cell.htmlElement);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const firstCell = this.cells[0];
|
|
68
|
+
if (firstCell.column?.index === 0) {
|
|
69
|
+
// Add class to disable left border on first column
|
|
70
|
+
this.cells[0].htmlElement.classList.add(Globals.getClassName('columnFirst'));
|
|
71
|
+
}
|
|
72
|
+
this.setLastCellClass();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/* *
|
|
76
|
+
*
|
|
77
|
+
* Default Export
|
|
78
|
+
*
|
|
79
|
+
* */
|
|
80
|
+
export default FilterRow;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type Column from '../../Column';
|
|
2
|
+
/**
|
|
3
|
+
* String filtering conditions.
|
|
4
|
+
*/
|
|
5
|
+
export type StringCondition = typeof stringConditions[number];
|
|
6
|
+
/**
|
|
7
|
+
* Number filtering conditions.
|
|
8
|
+
*/
|
|
9
|
+
export type NumberCondition = typeof numberConditions[number];
|
|
10
|
+
/**
|
|
11
|
+
* DateTime filtering conditions.
|
|
12
|
+
*/
|
|
13
|
+
export type DateTimeCondition = typeof dateTimeConditions[number];
|
|
14
|
+
/**
|
|
15
|
+
* Boolean filtering conditions.
|
|
16
|
+
*/
|
|
17
|
+
export type BooleanCondition = typeof booleanConditions[number];
|
|
18
|
+
/**
|
|
19
|
+
* The event object for the 'afterRender' event.
|
|
20
|
+
*/
|
|
21
|
+
export type AfterRenderEvent = Event & {
|
|
22
|
+
column: Column;
|
|
23
|
+
filtering: boolean;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Combined filtering conditions.
|
|
27
|
+
*/
|
|
28
|
+
export type Condition = StringCondition | NumberCondition | DateTimeCondition | BooleanCondition;
|
|
29
|
+
/**
|
|
30
|
+
* String conditions values for the condition select options.
|
|
31
|
+
*/
|
|
32
|
+
export declare const stringConditions: readonly ["contains", "doesNotContain", "equals", "doesNotEqual", "beginsWith", "endsWith", "empty", "notEmpty"];
|
|
33
|
+
/**
|
|
34
|
+
* Number conditions values for the condition select options.
|
|
35
|
+
*/
|
|
36
|
+
export declare const numberConditions: readonly ["equals", "doesNotEqual", "greaterThan", "greaterThanOrEqualTo", "lessThan", "lessThanOrEqualTo", "empty", "notEmpty"];
|
|
37
|
+
/**
|
|
38
|
+
* DateTime conditions values for the condition select options.
|
|
39
|
+
*/
|
|
40
|
+
export declare const dateTimeConditions: readonly ["equals", "doesNotEqual", "before", "after", "empty", "notEmpty"];
|
|
41
|
+
/**
|
|
42
|
+
* Boolean conditions values for the condition select options.
|
|
43
|
+
*/
|
|
44
|
+
export declare const booleanConditions: readonly ["all", "true", "false", "empty"];
|
|
45
|
+
/**
|
|
46
|
+
* Corresponding values for the boolean select options.
|
|
47
|
+
*/
|
|
48
|
+
export declare const booleanValueMap: Record<BooleanCondition, 'all' | boolean | null>;
|
|
49
|
+
/**
|
|
50
|
+
* Conditions map for the condition select options.
|
|
51
|
+
*/
|
|
52
|
+
export declare const conditionsMap: Record<Column.DataType, readonly Condition[]>;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/* *
|
|
2
|
+
*
|
|
3
|
+
* Grid Filtering Types and Constants
|
|
4
|
+
*
|
|
5
|
+
* (c) 2020-2025 Highsoft AS
|
|
6
|
+
*
|
|
7
|
+
* License: www.highcharts.com/license
|
|
8
|
+
*
|
|
9
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
10
|
+
*
|
|
11
|
+
* Authors:
|
|
12
|
+
* - Dawid Dragula
|
|
13
|
+
* - Sebastian Bochan
|
|
14
|
+
* - Kamil Kubik
|
|
15
|
+
*
|
|
16
|
+
* */
|
|
17
|
+
'use strict';
|
|
18
|
+
/**
|
|
19
|
+
* String conditions values for the condition select options.
|
|
20
|
+
*/
|
|
21
|
+
export const stringConditions = [
|
|
22
|
+
'contains',
|
|
23
|
+
'doesNotContain',
|
|
24
|
+
'equals',
|
|
25
|
+
'doesNotEqual',
|
|
26
|
+
'beginsWith',
|
|
27
|
+
'endsWith',
|
|
28
|
+
'empty',
|
|
29
|
+
'notEmpty'
|
|
30
|
+
];
|
|
31
|
+
/**
|
|
32
|
+
* Number conditions values for the condition select options.
|
|
33
|
+
*/
|
|
34
|
+
export const numberConditions = [
|
|
35
|
+
'equals',
|
|
36
|
+
'doesNotEqual',
|
|
37
|
+
'greaterThan',
|
|
38
|
+
'greaterThanOrEqualTo',
|
|
39
|
+
'lessThan',
|
|
40
|
+
'lessThanOrEqualTo',
|
|
41
|
+
'empty',
|
|
42
|
+
'notEmpty'
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* DateTime conditions values for the condition select options.
|
|
46
|
+
*/
|
|
47
|
+
export const dateTimeConditions = [
|
|
48
|
+
'equals',
|
|
49
|
+
'doesNotEqual',
|
|
50
|
+
'before',
|
|
51
|
+
'after',
|
|
52
|
+
'empty',
|
|
53
|
+
'notEmpty'
|
|
54
|
+
];
|
|
55
|
+
/**
|
|
56
|
+
* Boolean conditions values for the condition select options.
|
|
57
|
+
*/
|
|
58
|
+
export const booleanConditions = [
|
|
59
|
+
'all',
|
|
60
|
+
'true',
|
|
61
|
+
'false',
|
|
62
|
+
'empty'
|
|
63
|
+
];
|
|
64
|
+
/**
|
|
65
|
+
* Corresponding values for the boolean select options.
|
|
66
|
+
*/
|
|
67
|
+
export const booleanValueMap = {
|
|
68
|
+
'all': 'all',
|
|
69
|
+
'true': true,
|
|
70
|
+
'false': false,
|
|
71
|
+
'empty': null
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Conditions map for the condition select options.
|
|
75
|
+
*/
|
|
76
|
+
export const conditionsMap = {
|
|
77
|
+
string: stringConditions,
|
|
78
|
+
number: numberConditions,
|
|
79
|
+
datetime: dateTimeConditions,
|
|
80
|
+
'boolean': booleanConditions
|
|
81
|
+
};
|