-
Notifications
You must be signed in to change notification settings - Fork 357
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tooltip extensions (onShown,onHidden, linked) and reference to all chart instances #341
Conversation
Added tooltip options: onShown, onHidden, linked Ref #308
Update checks to reduce calls to callback and handle linked tooltips more efficiently
Not sure how to add more than one chart to a single demo page in the demo.js, I'll look into it more unless someone can point me in the right direction. |
Adding check for chart being in DOM Adding option for multiple charts in demo.js/chart.js
I updated the demo area, chart.js to allow multiple charts in a demo by checking for an array of options and handling them during chart generation.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks a nice idea! It can create multiple charts with tooltip linked.
Aside of the review comments, it needs to have:
- API jsdoc for the documentation
- Test codes
src/internals/tooltip.js
Outdated
|
||
// Set tooltip | ||
$$.tooltip | ||
.style("top", `${position.top}px`) | ||
.style("left", `${position.left}px`); | ||
|
||
if (config.tooltip_linked) { | ||
$$.api.internal.charts.forEach(c => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Most of this block is duplicated on hide also.
It should making as a separated function to handle both states (showing & hiding).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moving this to a separate handler function.
src/internals/tooltip.js
Outdated
}); | ||
} | ||
|
||
if (config.tooltip_onShown) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There're already undocumented tooltip.onshow/onhide options.
It'll be good using them instead.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I saw these, but they don't functioning in (what I consider) the expected manner. The current implementation is called in the show() method of api.tooltip.js. It fires once when the tooltip is originally shown and then never again. If the tooltips are linked, they will fire all the time because the show method is called explicitly in the linked tooltip handler.
I'll look at the implementation some more today.
demo/chart.js
Outdated
@@ -1,5 +1,5 @@ | |||
/* eslint-disable */ | |||
var billboardDemo = { | |||
let billboardDemo = { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using ES6 syntax is good, but as having IE9 support this won't work for old browsers.
This is the reason of keeping old syntax.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Roger that. Converting back to var notation.
Adding jsdoc in Options.js Adding linked tooltip handler to reduce code duplication Adding promises to handle before/show|hide/after events. onshow|onhide will happen prior to event, onshown|onhidden will happen after the event Updating calls to onshow/onhide: moved to tooltip.js from api.tooltip.js to provide more consistent functionality
- Remove promises, causing unexpected test failures
Added handlers for before show/hide | show/hide | after shown/hidden
I'll work on some tests this weekend. |
adding linked tooltips and callback tests
Adding tests in tooltip-spec.js
Linked Tooltips tests:
|
updating linked tooltips and callback tests
Thanks @rshingleton! I just merged with some changes. Anyway, really appreciate again your efforts on this! |
# 1.0.0 (2019-06-18) ### Bug Fixes * fallback to __bindto's id attribute when it is not a string ([16a1e6d](16a1e6d)) * regex replaces everything that is not alphanum, - or _ ([1f093dd](1f093dd)) * **tooltip:** Correct tooltip position when is zoomed ([45785ab](45785ab)), closes [#197](#197) [#281](#281) [#431](#431) [#546](#546) * throw errors instead of alerts ([12cf47d](12cf47d)) * **all:** Re-organize import from d3 ([c11a215](c11a215)), closes [#285](#285) [#313](#313) * **AMD-module:** updating to enforce the AMD standard ([4f8f63c](4f8f63c)) * **api:** Cancel transitions on destroy. ([7dd287d](7dd287d)), closes [#766](#766) [#765](#765) * **api:** Change the way of hiding tooltip ([#358](#358)) ([67c8305](67c8305)), closes [#343](#343) * **api:** Correct .x()/.xs() to work properly ([80d4e1b](80d4e1b)), closes [#634](#634) [#635](#635) * **api:** Correct on exporting custom points ([f65bcfb](f65bcfb)), closes [#541](#541) [#741](#741) * **api:** Correct toggle interaction ([#456](#456)) ([3682a83](3682a83)), closes [#454](#454) * **api:** Fix css encoding in exported svg ([321971e](321971e)), closes [#843](#843) [#844](#844) * **api:** Fix JSON data loading ([9067138](9067138)), closes [#398](#398) [#400](#400) * **api:** Fix loading to maintain correct x index ([f3881bc](f3881bc)), closes [#517](#517) [#519](#519) * **api:** Fix regions.remove() error ([#579](#579)) ([0c0374f](0c0374f)), closes [#529](#529) [#578](#578) * **api:** Fix to remove instance ([#357](#357)) ([80fdc31](80fdc31)), closes [#347](#347) * **api:** Remove cached data when .unload() is called ([aa91bab](aa91bab)), closes [#626](#626) [#627](#627) * **api-load:** Allow false for unload ([e52e5ad](e52e5ad)), closes [#321](#321) [#333](#333) * **api.zoom, interaction:** fix zoom bug for rects ([b3521c8](b3521c8)), closes [#33](#33) [#46](#46) * **arc:** Correction on rendering 0 values ([dcfa12c](dcfa12c)), closes [#652](#652) [#656](#656) * **arc:** Fix to generate arc when data is zero ([04a4dd8](04a4dd8)), closes [#935](#935) * **arc,api:** Correct on data representation and handling ([#332](#332)) ([3eec8d7](3eec8d7)), closes [#303](#303) [#331](#331) * **area:** Apply gradient on dynamic data loading ([954c303](954c303)), closes [#855](#855) * **area-line-range:** Fix working with grouped data ([1546dda](1546dda)), closes [#630](#630) [#644](#644) * **area-range:** Correct handling null data ([cc1d4ee](cc1d4ee)), closes [#482](#482) [#487](#487) * **area-range:** Fixed data parsing ([#485](#485)) ([4b78de5](4b78de5)), closes [#481](#481) * **axis:** Adjust axes range ([0130519](0130519)), closes [#859](#859) * **axis:** Avoid unnecessary computing char dimension ([3f52827](3f52827)), closes [#399](#399) [#407](#407) * **axis:** Correct axis label position ([#538](#538)) ([37cca8c](37cca8c)), closes [#519](#519) [#534](#534) * **axis:** Correct axis transition ([e2bec90](e2bec90)), closes [#759](#759) * **axis:** Correct not to generate unnecessary ticks ([#560](#560)) ([9346e66](9346e66)), closes [#348](#348) * **axis:** Correct rotated x axis rendering ([2b02a03](2b02a03)), closes [#230](#230) [#234](#234) * **axis:** Correct tick's position implementation ([#457](#457)) ([09547be](09547be)), closes [#380](#380) * **axis:** Correct ticks less than ~0.1 to be shown ([8d14bcb](8d14bcb)), closes [#387](#387) [#409](#409) * **axis:** Fix indexed x axis order ([#879](#879)) ([df8d385](df8d385)), closes [#714](#714) [#877](#877) * **axis:** Fix on axis width sizing ([10f27e5](10f27e5)), closes [#920](#920) * **axis:** fix side-effects from [#717](#717) ([#740](#740)) ([4eba766](4eba766)) * **axis:** Fix x Axis tick fit for timeseries ([9cda54f](9cda54f)), closes [#628](#628) * **axis:** improve tick label size calculation ([8dc08bd](8dc08bd)), closes [#323](#323) [#324](#324) * **axis:** Round float numbers from 'binary floating point' ([bd2fbbe](bd2fbbe)), closes [#222](#222) [#320](#320) * **Axis:** Fix text alignment when legend is not showing ([620d737](620d737)), closes [#25](#25) [#686](#686) * **Axis:** Fix tick text position ([0ca6b18](0ca6b18)), closes [#672](#672) [#678](#678) * **bar:** Adjust bar width regardless tick count limit ([8f92d3e](8f92d3e)), closes [#166](#166) [#182](#182) * **bar:** Fix bar position on width option ([0883588](0883588)), closes [#720](#720) [#832](#832) * **bar:** Remove new line chars on path string ([#533](#533)) ([1f9db5a](1f9db5a)), closes [#530](#530) * **bower:** add scss source files to bower package ([945ee66](945ee66)) * **bubble,point:** Fix bubble size change on load API ([#214](#214)) ([d9eb371](d9eb371)), closes [#163](#163) * **chart:** Correct data label text prop ref ([d9f4477](d9f4477)), closes [#780](#780) [#781](#781) * **color:** Correct the way on setting pattern value ([#509](#509)) ([164a3f9](164a3f9)), closes [#507](#507) * **color:** Remove importing schemeCategory10 ([72864c5](72864c5)), closes [#298](#298) [#373](#373) * **colors:** Fix color method ([8effaad](8effaad)), closes [#233](#233) * **data:** babel transform bug ([1f8efc2](1f8efc2)), closes [#17](#17) [#18](#18) * **data:** Correct data label text to be shown on scatter ([#492](#492)) ([f9f0081](f9f0081)), closes [#488](#488) * **data:** Correct data order to not be altered ([e39db91](e39db91)), closes [#379](#379) [#412](#412) * **data:** Correct data.onclick calls ([#203](#203)) ([a5fd3fc](a5fd3fc)), closes [#202](#202) * **data:** Correct onover/out callback on touch ([#769](#769)) ([9ad9817](9ad9817)), closes [#768](#768) * **data:** Fix data indexing ([2e3010b](2e3010b)), closes [#863](#863) * **data:** Fix empty label text flickering ([173990b](173990b)), closes [#901](#901) * **data:** Remove selection on data.onmin/max ([#143](#143)) ([7709c32](7709c32)), closes [#8](#8) * **data,interaction:** Bar type interaction error on multiple x ([cf49d71](cf49d71)), closes [#178](#178) [#180](#180) * **data.convert:** allow dots in json properties ([7ff837a](7ff837a)), closes [#14](#14) * **dev-env:** Update main entry point ([1488232](1488232)), closes [#391](#391) [#525](#525) [#549](#549) * **domain:** Fix getting Y domain min/max value ([864e112](864e112)), closes [#685](#685) [#690](#690) * **event:** Correct on resizing all generated charts ([10d6d73](10d6d73)), closes [#404](#404) [#466](#466) [#468](#468) * **gauge:** Correct background rendering on fullCircle ([#141](#141)) ([7f5fda2](7f5fda2)), closes [#140](#140) * **grid:** Correct grid position ([5a7a94d](5a7a94d)), closes [#820](#820) [#821](#821) * **grid:** Correct grid scale on zoom ([2904d41](2904d41)), closes [#799](#799) * **grid:** Correct updating grid's attributes ([#414](#414)) ([1662a1f](1662a1f)), closes [#389](#389) * **interaction:** Correct drag selection error ([#493](#493)) ([f38cd24](f38cd24)), closes [#490](#490) * **interaction:** Correct event binding ([#27](#27)) ([f09d2ed](f09d2ed)), closes [#24](#24) * **interaction:** Correct mouse event create ([#252](#252)) ([930f74b](930f74b)), closes [#251](#251) * **interaction:** Correct rect element sizing ([6a09985](6a09985)), closes [#522](#522) [#523](#523) * **interaction:** Prioritize mouse input ([#280](#280)) ([5cc3442](5cc3442)), closes [#92](#92) * **internal:** Correct evaluating inputType condition ([#257](#257)) ([4b1f3cc](4b1f3cc)), closes [#92](#92) * **internal:** Fix on unexpected resize event firing ([#572](#572)) ([dd5af9c](dd5af9c)), closes [#571](#571) * **label:** Correct newly added texts transition position ([f81d440](f81d440)), closes [#648](#648) [#718](#718) * **legend:** Correct legend positioning ([51ee8ce](51ee8ce)), closes [#737](#737) [#737](#737) [#752](#752) * **legend:** Correct to keep the original class value ([46ebf35](46ebf35)), closes [#444](#444) * **legend:** Fix legend template update for dynamic loading ([#622](#622)) ([1e465ae](1e465ae)), closes [#621](#621) * **legend:** Fix resize for arc ([#707](#707)) ([89a3ece](89a3ece)), closes [#705](#705) * **legend:** Fix resizing when legend template is used ([#706](#706)) ([87294dd](87294dd)), closes [#705](#705) * **Legend:** working with useless transition effect ([676b1e5](676b1e5)), closes [#25](#25) [#41](#41) * **line:** Correct on rotated step type ([#474](#474)) ([74bd639](74bd639)), closes [#471](#471) * **line:** Correct zoom with data.regions ([a76000a](a76000a)), closes [#728](#728) [#729](#729) * **line:** Fix areaGradient for spaced data name ([3fbd4b2](3fbd4b2)), closes [#930](#930) * **line:** Fix gradient with dataname starting w/no ([fe31102](fe31102)), closes [#936](#936) * **options:** Correct when bindto element not exist ([448a45d](448a45d)), closes [#743](#743) [#749](#749) * **pie:** Correct multiline label text ([9bacb9b](9bacb9b)), closes [#784](#784) * **point:** Check for node.childNodes existance for IE / Edge ([59a5a05](59a5a05)), closes [#601](#601) [#602](#602) * **point:** Correct point expansion on old IEs ([2e9dbfe](2e9dbfe)), closes [#897](#897) * **point:** Fix custom point hover position ([2edb82a](2edb82a)), closes [#618](#618) [#700](#700) * **radar:** Correct on resizing ([#540](#540)) ([f2fdecc](f2fdecc)), closes [#497](#497) * **radar:** Fix data.onover/out callback ([91c8df2](91c8df2)), closes [#768](#768) [#773](#773) * **radar:** Fix incorrect rendering ([#738](#738)) ([f8915e2](f8915e2)), closes [#735](#735) * **readme:** Change broken link about license ([#188](#188)) ([a9a1e09](a9a1e09)) * **regions:** Fix regions resizing on zoom ([#561](#561)) ([c61960d](c61960d)), closes [#483](#483) * **selection:** Correct multiple callback calls ([#120](#120)) ([f7cae57](f7cae57)), closes [#117](#117) * **selection:** Correct multiple selection error ([#455](#455)) ([353f809](353f809)), closes [#445](#445) * **selection:** Correct on data selection ([#113](#113)) ([eb13350](eb13350)), closes [#112](#112) * **shape:** Correct newly added points transition position ([d9dc75a](d9dc75a)), closes [#648](#648) [#659](#659) * **shape:** Fix for empty data in normalization ([#649](#649)) ([76f3558](76f3558)), closes [#623](#623) * **shape:** Fix normalization on hidden data ([#645](#645)) ([aba9496](aba9496)), closes [#643](#643) * **shape:** line.step.type config not working ([#86](#86)) ([62273bf](62273bf)), closes [#85](#85) * **shape:** Prevent when non-existed data.hide is given ([#650](#650)) ([6a72602](6a72602)), closes [#623](#623) * **shape, api.zoom:** fix zoom for barchart ([917384f](917384f)), closes [#16](#16) [#32](#32) * **shape.line:** Correct getting shape object ([#47](#47)) ([b2a0acf](b2a0acf)), closes [#10](#10) * **shape.line:** Correct return type ([#148](#148)) ([3317183](3317183)), closes [#147](#147) * **size:** Correct height increase during resize ([#223](#223)) ([9699a55](9699a55)), closes [#155](#155) [#164](#164) * **size:** Correct width on resizing ([#189](#189)) ([5a93a19](5a93a19)), closes [#179](#179) * **subchart:** Correct subchart extent option ([eac3e65](eac3e65)), closes [#142](#142) [#805](#805) * **subchart:** Maintain subchart selection on resize ([c7d7fa5](c7d7fa5)), closes [#778](#778) * **subchart:** Maintaion selection for category x axis ([3f46609](3f46609)), closes [#778](#778) * **tiles:** Fix background tiles id ([c452b43](c452b43)), closes [#225](#225) [#226](#226) * **tooltip:** Correct interaction on mobile ([23ff1df](23ff1df)), closes [#376](#376) [#377](#377) * **tooltip:** Correct on toggling data series ([#253](#253)) ([e7d1b19](e7d1b19)), closes [#240](#240) * **tooltip:** Enhancement for overlapped points ([3ee694d](3ee694d)), closes [#568](#568) [#569](#569) * **tooltip:** Fix for dynamically loaded data adding column ([009d3b1](009d3b1)), closes [#660](#660) [#661](#661) * **tooltip:** Fix for mobile environment ([#616](#616)) ([981bc77](981bc77)), closes [#593](#593) * **tooltip:** Fix handling on color tile ([#875](#875)) ([56c2f99](56c2f99)), closes [#816](#816) [#816](#816) * **tooltip:** Fix mid value showing for area-range type ([#598](#598)) ([a9d615b](a9d615b)), closes [#597](#597) * **tooltip:** Fix on ungrouped tooltip showing for custom shape ([#548](#548)) ([9411758](9411758)), closes [#547](#547) [#241](#241) * **tooltip:** Fix tooltip.show() for multi x axis ([aaa8293](aaa8293)), closes [#785](#785) * **tooltip:** Make linked tooltip to work based on index ([2df0a38](2df0a38)), closes [#494](#494) [#496](#496) * **tooltip:** Non linked tooltip exclusion ([feeb536](feeb536)), closes [#393](#393) [#396](#396) * **ua:** Fix the side-effect by refactoring ([#898](#898)) ([d00d903](d00d903)) * **zoom:** Correct not firing data.onclick callback ([7368446](7368446)), closes [#583](#583) [#584](#584) * **zoom:** Correct not to re-scale while zoom is disabled ([#273](#273)) ([502d6fd](502d6fd)), closes [#272](#272) * **zoom:** Correct zoom in rendering on 0 coord. ([f61b792](f61b792)), closes [#169](#169) [#170](#170) * **zoom:** Correct zoom resizing ([#139](#139)) ([67e863e](67e863e)), closes [#60](#60) * **zoom:** Correct zoom.range() to work ([6830e5c](6830e5c)), closes [#290](#290) [#291](#291) * **zoom:** Correct zooming for category axis type ([#441](#441)) ([c8a164a](c8a164a)), closes [#177](#177) * **zoom:** Fix on .zoom() API ([cd0d109](cd0d109)), closes [#581](#581) [#582](#582) * **zoom:** Fix on rotated axis ([#892](#892)) ([983d970](983d970)), closes [#736](#736) [#818](#818) * **zoom:** Fix on zoom.rescale option ([#566](#566)) ([851ec3e](851ec3e)), closes [#470](#470) * **zoom:** Fix tooltip pos for bubble/scatter ([1fc9c16](1fc9c16)), closes [#906](#906) * **zoom:** Fix zoom level reset ([ec24c2c](ec24c2c)), closes [#913](#913) * **zoom:** Fix zoom rescale by wheel ([585d607](585d607)), closes [#890](#890) * **zoom:** Maintain zoommed scale on .zoom() ([7b7a274](7b7a274)), closes [#654](#654) [#702](#702) * **Zoom:** Updated domain values onzoom/onzoomend ([acf3239](acf3239)), closes [#770](#770) [#777](#777) ### Features * **all:** Add TS definition ([8b34691](8b34691)), closes [#629](#629) [#682](#682) * **api:** Intent to ship .config() ([b0dc53a](b0dc53a)), closes [#502](#502) [#545](#545) * **arc:** Enhance multiline text label ([7e57c67](7e57c67)), closes [#784](#784) * **Arc:** Implement multiline donut title ([b816dc0](b816dc0)), closes [#71](#71) [#130](#130) * **area:** Intent to ship area.linearGradient ([0063a4c](0063a4c)), closes [#755](#755) [#800](#800) * **axis:** Enhancement on tick multiline ([#386](#386)) ([4178e40](4178e40)), closes [#381](#381) * **axis:** Inten to ship axis.x.tick.tooltip ([94a8650](94a8650)), closes [#236](#236) [#240](#240) * **axis:** Intent to ship axis clipPath option ([#459](#459)) ([e9fb973](e9fb973)), closes [#458](#458) * **axis:** Intent to ship multi Axes ([becd3c3](becd3c3)), closes [#98](#98) [#697](#697) [#699](#699) * **axis:** Intent to ship tick show options ([#746](#746)) ([89c1aa2](89c1aa2)), closes [#737](#737) * **axis:** Intent to ship tick.text.position ([#426](#426)) ([816ce2a](816ce2a)), closes [#380](#380) * **axis:** Pass category name param ([#329](#329)) ([7e06851](7e06851)), closes [#327](#327) * **bar:** Intent to ship bar.radius option ([#476](#476)) ([17e2b41](17e2b41)), closes [#359](#359) * **bar:** Intent to ship variant width ([ae46c85](ae46c85)), closes [#720](#720) [#724](#724) * **bubble:** Intent to ship bubble type ([#195](#195)) ([c80d78f](c80d78f)), closes [#163](#163) * **Chart:** Expose primary node elements ([#511](#511)) ([de3f60c](de3f60c)), closes [#423](#423) * **ChartInternal,Options:** Add before/after initialization callbacks ([354d7e2](354d7e2)), closes [#55](#55) [#126](#126) * **ChartInternal,Options:** Add new clipPath option ([6531692](6531692)), closes [#56](#56) [#95](#95) * **color:** Intent to ship color.onover ([5ec2d9e](5ec2d9e)), closes [#754](#754) [#768](#768) [#772](#772) * **core:** Intent to ship global config ([1b524e1](1b524e1)), closes [#932](#932) * **core:** Intent to ship instance property ([#315](#315)) ([d20c68d](d20c68d)), closes [#308](#308) * **data:** Intent to ship data.labels.centered ([cbe95b7](cbe95b7)), closes [#876](#876) * **data:** Intent to ship data.labels.colors ([c10c946](c10c946)), closes [#871](#871) * **data:** Intent to ship data.min()/max() ([e9f1417](e9f1417)), closes [#637](#637) [#638](#638) * **data,Options:** Implement data.onmin/onmax callback ([6a88a74](6a88a74)), closes [#8](#8) [#125](#125) * **data.type:** Intent to ship 'area-range' charts ([9fd9577](9fd9577)), closes [#277](#277) [#293](#293) * **export:** Intent to ship export as an image ([9ad9956](9ad9956)), closes [#78](#78) [#213](#213) * **gauge:** Enhance display multiline labels ([#516](#516)) ([3a1267e](3a1267e)), closes [#442](#442) * **gauge:** Intent to ship stack data ([0d7fb3e](0d7fb3e)), closes [#580](#580) * **grid:** Intent to ship grid.front option ([#385](#385)) ([58621a0](58621a0)), closes [#384](#384) * **interaction:** Add new inputType.touch.preventDefault option ([baa7a7a](baa7a7a)), closes [#82](#82) [#88](#88) * **legend:** Add argument to legend template ([2ecab0d](2ecab0d)), closes [#302](#302) [#322](#322) * **legend:** Add shapes to legend ([a0b6542](a0b6542)), closes [#269](#269) [#289](#289) * **legend:** Implement legend.contents ([26de147](26de147)), closes [#58](#58) [#134](#134) * **line:** Ability to hide points for linecharts only ([3d217cc](3d217cc)), closes [#520](#520) [#521](#521) * **option:** Intent to ship bar.padding option ([#370](#370)) ([6671e63](6671e63)), closes [#335](#335) * **Options:** Add custom classname for bind element ([#212](#212)) ([22cee47](22cee47)), closes [#201](#201) * **Options:** Implement color.tile option ([bec92dd](bec92dd)), closes [#193](#193) [#196](#196) * **Options:** New tooltip onshow/onhidden and linked options ([c96d2dd](c96d2dd)), closes [#341](#341) * **pie:** Enhance innerRadius option ([1668463](1668463)), closes [#856](#856) * **pie:** Intent to ship pie's pdding and innerRadius options. ([b04ba3d](b04ba3d)), closes [#301](#301) [#304](#304) * **plugin:** Add support for Stanford Diagrams ([a162cb7](a162cb7)), closes [#829](#829) * **point:** Allow grouped custom point ([#565](#565)) ([ee12f96](ee12f96)), closes [#562](#562) * **point:** Implement alternate markers ([8f1b56f](8f1b56f)), closes [#209](#209) [#219](#219) * **point,bar:** Intent to ship sensitivity ([ebeb30f](ebeb30f)), closes [#831](#831) * **radar:** Intent to ship multiline axis ([44198e1](44198e1)), closes [#904](#904) * **radar:** Intent to ship radar type ([#453](#453)) ([7d0da65](7d0da65)), closes [#59](#59) * **radar:** Intent to ship radar.direction.clockwise ([#543](#543)) ([f17fa7e](f17fa7e)), closes [#464](#464) * **regions:** Intent to ship dasharray ([ca94580](ca94580)), closes [#491](#491) [#498](#498) * **shape:** Intent to ship stack.normalize ([3af15a5](3af15a5)), closes [#623](#623) [#643](#643) * **shape.line:** Add a line_classes option ([5781b5a](5781b5a)), closes [#181](#181) * **shape.line:** Allow customization of points ([cc2ac8b](cc2ac8b)), closes [#173](#173) [#184](#184) * **stats:** Intent to ship stats ([bc163b9](bc163b9)), closes [#928](#928) * **text,Options:** Add new data.labels.position option ([51b09d7](51b09d7)), closes [#57](#57) [#99](#99) * **theme:** Add new 'graph' theme ([014537a](014537a)), closes [#631](#631) [#647](#647) * **theme:** Intent to ship css theme ([e113278](e113278)), closes [#241](#241) [#507](#507) * **title:** Intent to ship multilined title ([#731](#731)) ([171df89](171df89)), closes [#612](#612) [#727](#727) * **tooltip:** Implement tooltip.order ([db7d0f8](db7d0f8)), closes [#127](#127) [#131](#131) * **tooltip:** Intent to ship linked tooltip with name ([ae263a1](ae263a1)), closes [#401](#401) [#402](#402) * **tooltip:** Intent to ship tooltip.contents.template ([c1af5df](c1af5df)), closes [#813](#813) * **tooltip:** Intent to ship tooltip.contents.text ([c16ab48](c16ab48)), closes [#826](#826) * **tooltip:** Intent to ship tooltip.doNotHide ([81e2f09](81e2f09)), closes [#812](#812) * **zoom:** Add option to zoom by dragging ([da2ce10](da2ce10)), closes [#416](#416) [#508](#508) [#513](#513)
Ref #308
Adding reference to bb.instances: Chart.internals.charts
see: src/core.js
bb already had a feature that stored all chart instances. This PR adds a reference to this collection in the Chart.internals that can be used elsewhere (see linked tooltip option)
Adding tooltip options: onShown: function, onHidden: function tooltip
Adding tooltip option: linked: boolean
Makes use of Chart.internals.charts which has a reference to bb.instances. Any charts in the bb.instances that are currently rendered will show tooltips at like x axis.
Basic demo file at: /demo/linked-tooltips.html