* Refactor get...Items functions to take events rather than positions
To work toward exposing something like the get...Items functions.
* Switch getAxisItems to use optimizedEvaluateItems
optimizedEvaluateItems falls back to evaluating all items for unsorted items, and sorting / optimizing ought to be okay, so this ought to be equivalent.
* Performance
* Consolidate getRelativePosition
helpers.dom.js's getRelativePosition already had logic to handle ChartEvent vs. Event (as demonstrated by the `native` check within `getCanvasPosition`), so it's redundant for core.interaction.js to have its own `native` check.
Update `getRelativePosition` to use the same `native` check as core.interaction.js's version. As best as I can tell, the ChartEvent's x and y are populated from `getRelativePosition`, so the previous `getCanvasPosition` was effectively just duplicating `getRelativePosition'`s work. I added a test to verify this; it depends on a local, not-yet-submitted change in chartjs-test-utils' `triggerMouseEvent` to return the mouse event that it triggers.
* Add an API to refactor duplicate isPointInArea
* Rename and update JSDoc to prepare for making this public
* Give functions a consistent, generic interface
* Export functions for discussion
* Code review feedback
Add a non-null assertion, as requested in code review.
Add JSDoc to clarify that `getCanvasPosition` now expects a native `Event`, not a `ChartEvent`. Add `@ts-ignore`; `getCanvasPosition` relied on some loose conversions between `Event`, `TouchEvent`, and `Touch` that would require several changes to make TypeScript happy.
* Code review feedback
Return the event directly, to speed up the code a bit. Add JSDoc to help communicate its intent. Update various comments.
* Finalize exports; add docs and TypeScript
* Update src/helpers/helpers.dom.js
* Update src/helpers/helpers.dom.js
Only thing needed actually is the update of chartjs-test-utils to 0.4.0
* Bump chartjs-test-utils dependency
To get supporting work from https://github.com/chartjs/chartjs-test-utils/pull/19
Co-authored-by: Jukka Kurkela <jukka.kurkela@gmail.com>
* Support "r" axis for non-intersecting interaction
* Extract some interaction functionality
* Remove whitespace and semicolons
* WIP: add interaction test
* Update documentation
* Fix test
* Add another test
* Update axis params
* Add additional axis check to binary search
* Update axis type
* Change tabs from area samples to buttons to switch to be in line with other samples, change linewith of extra line datasets to default instead of 1 to be in line with all other lines in the sampels
* fix few broken links in docs
* Initial work
* Update doc commands
* Updated sidebar config
* Move docs
* Update theme version and enable
* Convert to chart.js sample
* Update scripts to point to local build
* Chart.js from local build
* Simplify getting-started example
* Axis docs updated except for imported content
* Common ticks import works
* Chart type docs ported to editor plugin
* Last pages to use editor
* Fix small errors
* Frontmatter title to heading
* Remove duplicate example
* Update sidebar
* Add paths
* Remove paths
* Add getting-started back
* Update menus and add copyright to license section of the docs
* Add GA plugin
* Style sub-groups
* Remove unneeded license page since it is covered on the main page
* Remove docusaurus readme page
* Remove docusaurus files
* Fix issues in docs
* Build and deploy scripts for docs work
* Conditional base URL for nice local testing
* Use eslint-plugin-markdown
* Remove hard coded lines
* Remove mentions of docusaurus
Co-authored-by: Jukka Kurkela <jukka.kurkela@gmail.com>