From dd7807dd7b025d5f5b10f9af3d7f8d1528cf5f47 Mon Sep 17 00:00:00 2001 From: Evert Timberg Date: Sun, 4 Apr 2021 19:15:18 -0400 Subject: [PATCH] Document plugin event handling --- docs/developers/event_flowchart.png | Bin 0 -> 38182 bytes docs/developers/plugin_flowcharts.drawio | 2 +- docs/developers/plugins.md | 6 ++++++ 3 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 docs/developers/event_flowchart.png diff --git a/docs/developers/event_flowchart.png b/docs/developers/event_flowchart.png new file mode 100644 index 0000000000000000000000000000000000000000..08ee5ed4ca89b920926d72820e885eaaa0ddda02 GIT binary patch literal 38182 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 literal 0 HcmV?d00001 diff --git a/docs/developers/plugin_flowcharts.drawio b/docs/developers/plugin_flowcharts.drawio index e1c6f96ba10..2cbb3ca99bf 100644 --- a/docs/developers/plugin_flowcharts.drawio +++ b/docs/developers/plugin_flowcharts.drawio @@ -1 +1 @@ -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 \ No newline at end of file +7Vzdd6I4FP9reJw55APEx7GtMw/d7p7tw24fo0RlB4gLser89Rs0qUBUqLUkePacPsBNAuHe+8v9rA66SzbfM7Jc/MZCGjvQDTcOuncgBBhCp/hzw+2eEijCPItCOelAeI5+UUl0JXUVhTSvTOSMxTxaVolTlqZ0yis0kmVsXZ02Y3H1rUsypxrheUpinfpXFPKF/ArPPdB/0Gi+UG8GrhxJiJosCfmChGxdIqEHB91ljPH9VbK5o3HBPMWX/brxidG3jWU05W0WzJL49+1TOA/H49G/g+n6Zfzj/guSe+Nb9cE0FN8vb1nGF2zOUhI/HKijjK3SkBZPdcXdYc4jY0tBBIL4D+V8K4VJVpwJ0oInsRylm4j/XSz/6sm7l9LI/UY+eXezVTcpz7alRcXtS3nssGx3p9bpXJKMy9kqm9IzrFHaRrI55WfmSX0u+FZ6gZTBd8oSKvYjJmQ0Jjx6reoVkeo5f5t3kKC4kEJ8h0Dlc19JvJJvGtF5lArSn1RILdPlHccCS4Vc14uI0+cl2XFlLeBclRrJl3uAzaJNIf3TrH2lGaebs8yQoyiQ4JCng8LKugQ1SVqUUKZoV+ee9z8cGtS8EQ7YKjhADQ5PjEezYgMTOmMZPYGKg1BBMzJmURzfsZhlu7Uo9GgQYkHPecZ+0tJIACfI968EHb8KHXAEO2+0MnjwZ4En0Hj9Iiy3QUCBEpwO4GoCVAVOB3RdHVC4JaAGVgFK+WX2H5GfL5mhVZLBGvzuSDoVCwvGj/UTbsGSySpvPt0+xcwbtvMDjVfPP6PlaSfpXebgCgzzYI1hxg93AG8f98OWuAfAKuAPm3yc+4ysb8DDQeZBoJ+xhl0c17nExXlfzFAT/iyY0un0mPAngYe9DwbdbaNugFpiUCrTF/erxElrUO6e9S3LyLY0YcmilOelV/1REEpK61aVFuNaVqZhPlBaf2oBhucXiIv9nmvL1Qew2SwXnK1D4Y1jH4i19NzDE7t9q9FaZZXgLDEbQBeXtQ4jNu0wAr/Hum0gd4raHuOeXZgY3Lox70CmVw+LLzLEsG5YsXfesNYXKMvc1hDX5lft8LVsLGifZHskExrXUvhxNE/F9VQIX0S5aFScyNGUxN/kQBKF4V6naR79IpPd8wq1kdwWD/dGjnd/VJHOIko7+99KdvItTrkqdsqD8yocV9Wr9ylSly6RwkxJXOOMJIXExK4TEqVROrfN2AIMDFtbbPYY7sZt9Foep9i3y0R6RzwhmW4gM3Gs3E5FxTOecIC9qc9fDgTF0Ob4CVoFBLXvEhD2iTb3kWxplu/0RqhNMc+PxYeNJgIV/ry4+rWnkqTQ+93Y7gHKAzGYea6DwAIM9KYo/wEMwLYYsKy8Dk8bA5l7JpwI5yq/kRy0fyQR0S0cUG8KsH3IN8O2tV5olxeG9OSd3XGgUturxIGB5/lVV82xPBBERh25yxphOussa4tBZJcDiPRq4ImcsCUQVMmIa0DQ92E1GWM9BGGPGmT8wHAGBgZ98TI+cO74bW2/XS14UK9FXRZ47ihWRp3gWIdYx2HnsC8IMGCxBy2R07pLoyPk6H1/1dzljUSpAB6xHx2HqX5f4HM5DJQ/2uy42lXlVvtuzNr0FA717tmBbxoNGJpEg93hH2pdCLOr7RbphTBr4gkPVxEQYMPxBLLun4PsbrZBbT2s1jmRUhcFCGQo/LkdOF69Aweg8x019QWDht5ZLzg731wnLO5N9GyxZl8/436ZFte7Y0Dwzgbt2oLPaQzDx/4L5KgW2pGMVBC5SjISI1CtB9jfGYb0UFSVSh2LesPqjgRwh6Z7w3BfztbLz0jl6Ta7xHblV9S+9cxkuNdtXZc7TjT6NX0eGm9vwb1pb+neV8BtW86RXRl6rLf91vKMvc6v1EEEXOPZeqzXRFQfqvAnkmVMOdVxZtNP34BjrUXdxui9qXh02SHUOj1l2xmkt6da3iGkIphrRAQDT2WcVERgsD9B3B5+5m0//fBjeejhPw==7Zlbc6IwFMc/jY92uK8+Fi9td22nW7q17osTJUAqEhqCt0+/AYNAodS6rVanMz6Qkyv/c37JIdbk1nRxQYDvXGMTujVJMBc1uV2TJFGRpFr0E8zl2tJIDDZBJm+UGgy0gtwocGuITBjkGlKMXYr8vHGMPQ+Oac4GCMHzfDMLu/lZfWDDgsEYA7do7SOTOvwtVCG1X0JkO8nMosBrpiBpzA2BA0w8z5jkTk1uEYzp+mm6aEE3Ei/R5YFca08Pz7raMTv3Px9nk+GoWV8P1n1Pl80rEOjRnYfWpb6B9OGv3gRaozawJ7Pbu2TogC4TvaDJ5ONFTKiDbewBt5NadYJDz4TRqAIrpW16GPvMKDLjE6R0yWMBhBQzk0OnLq+FC0Qfo+5nKi8NMjXtBR85LiyTgkfJMtMpKg6ydWm3uJT021K6RAcckjEXYo6dpkF0B6q3/ct29ylo9lZcYoECYkNaoStvF4mZCUPumAuIp5AtkjUg0AUUzfKxCnjI25t2qVvZA/dsuZerVj0DbshnajmA0Ig6AgFlvixEgesyQCNvzx1EoeGDWJY52yPyvgSBv6bWQosoJt4p+AwSCheVEvFaucHfgu9DCZXzDNTc5GR4Tmz/o+lEGjrNm6vuH9TD3bEuSlSU69KxkLM7AVWRnSWgVJ+DEVC16gwBN5giK1rACFqYwCsP0YJHU3+Jb5NgIddtYReTuK9sqrBhKsweUIInMFPTkEaypn0mKloeFbGElY0tC4vyAbAEq0Fo/Z5po26HGHcDQ63f+XX5kLCIGVRScL7KMVMarlIRslJdpUNBVroapQDZgGV+ZZ7vgRFLM/MHiYtsjz2PmYKQkaJH8Y5YHnfOK6bINNeBAQO0AqN4vEh7HyOPxu+i6jW1XeqNqqgsgLVJRvkkuXyvDLi6cKbliONKbC07H/k2epNME2xZAaQFv2wWsLurtJL98FgOtCNjVN2S0TSW1F2i55wQsMw04FQUg4vPo0j5Q0JRX3w+vK89e1iv4DNDucoPmVC+g4GPvSCWrls81B08HYXB2wf6vjJZWd1fKlsaoT++yX+N/KpT98PI38/pXORkkwLHJyo8lfRXecGXIh86/W0eC2AfDIq6JSiNLwWK+joowGK56Sl/KqrioVlpFNSP9EYg6hj6JqDFferrX1apzf0d8dr90O/6waJz2eo3hedQ+Ut63/e8r+9cpXpte897sA/wqlWX7VwGjS98T3PX2nCzj12r9LbzaPjanZOqW94sJ1WRuX9OqlZdxsmVF1AQjXCipAifRworpn+Grr/u07+U5c4/7V1de6I4FP41XrqPEEB72dZOZ3c7ndnptjOduyhRmQHiQqzaX78BE/lIBJyCROvz9EIOJIRzzpucr6QdcO2tbgM4n33CNnI7es9edcCwo+uaoeud6K9nrxnlglOmgWMzWkJ4cF4RI/YYdeHYKMw8SDB2iTPPEsfY99GYZGgwCPAy+9gEu9m3zuEUCYSHMXRF6jfHJrMNdWD2EvpH5Exn/M1aj93xIH+YEcIZtPEyRQI3HXAdYEw2v7zVNXIj7nG+PP0z8T7P/x2i3tPQdC6J9dRddDedfdinyfYTAuST3+568fpr9ff6+z9wuIDmuD/8sny86hrs08ia8wvZlH3sEgdkhqfYh+5NQr0K8MK3UdRrj14lz9xhPKdEjRJ/IkLWTBfggmBKmhHPZXfRyiHfo+Z/mOzqOXVnuGI9xxdrfuGTYJ1qFF0+p+8lzeIr3q4i6xiLQ7wIxowR//21eCSjj19ndwty8/xEPg6Qw1jcIzCYItYfmXph//HWuf8BXm6NPrr6cd/lz0XMTKkhE8wtwh6ig6QPBMiFxHnJ6ipkKj/dPpeIlf5gkpVLuWjUL9BdsDddoanjU9Lj3IYEiUrguhSfkbCXM4eghzmMubKkc0RWlDCcb0A7cVaRSuzJ7xcUELQq5BC7CwbsI9g81AUcp8sUqhlplgI0p72FqVLomGfo7IKOlF8S6Eif09uCTtGoU9C5x8SZRAMYoQkO0A4EJZLWylE0cVz3Grs4iNsC20QD26D0kAT4F0rdGegjYFlNwszKwkzTRZRtaWmYGU3BTBME8EzNiRahp6WAl8CwDHoZ4CU43AG9nEJMBmM0HssUYjQwDbMBsOoVwQqUAmv/PCU3ImVLKSnrwoxwDf0xbRhJ8YM4E8+wN1qE5bPwoUwXvW3LBQgMfPjlzCllUcNa1hQXTT3HxdZXpotjmW1qnjWsirPGQKlZwxJnjQDF2t6LOtZ7Q+Si+JJiAIb0y+KYBF1w6cQShHHoIYgGZkfy440C5OGX+Jq1Ek0TJdCTt+tAVfRYjdl1msApReGjyGI9qAg7rbXYQ9GwdztQNy7yKIfCE3OkzCzgDE0COOOgjtQ51rcf4LSqEQtNLS9IE2MWwx1LGjf4emgDQvqLjgFGa9lxrGPGoOI6ZjYGq/dqBnKtL4eHqRY8RPcntyLdwTVekJNZiXKQMa22HSet1TjN78Xv2l2JzKpQUytSo8mMP6ns7+AIubnUkutMffp7THmIKFiuIpV3xtC9ZDc8x7Y3qoFC5xWO4v4i7s+xQ+3JqHPzqmMOpfIoVEwBXNv0NHtLJ50BloGuSxUGDMwM8FhPlVnPOv8SfU3qETyZxEt5TjbbMbxBXKYgruOKrFmg5ciafnZq95zZqgaTdLW8Wk0MJ8Xioa/yo2jQ3I2wQA0KvIqyVb042U5mEWkM/ReoaJjIyAGq33qQVQdnRO2X06mcZ9eVQpQueq1bsxxOqAVwWlZ5HmkDSVLowEiz2kTaEVrlHEDlSFPLAda5lVteUqGGWc41sx6z3FTdDNffa0SpOqDUSi3ycacAdek7Hn0z9iPjD/mRfh6HCzWQBFQP60KdfJqi9eKuyuEkxUxE7t2frmrUPaFWFrRiE6oYiPqKNvkrHy078sKM0MOYzliRB87m3rf5Coey/C9aj8cD/VhwVTc+qtZUAE0tfJQWVbCE74kXVWg9Q4Kdg1ZVgFbNlSP0mjmUyjGnVlUFENckpXNZXDFrcZotzTSyyOso7kRzNTvaXJYm23pz2DLxo9lOUfcUVbWyBaiVbgellS3MLDgtqyBvUGuyDRYHtgreawgPVM3nArU8TiDmczlIkv0ASnqTF3nlr1oR2ZjyG+/VnQRV3UnOelWUv8CdjFOvp7ls5JEDWg/EGCey2blVB5NLpz4HM/GDLnjx8H6Oz2UQwHXqAebUiX4Re5Nl5FSTmzgfqjbQShqY+UhKrgH9sRl0k46b5dzMv376+fp58mP0zbLuV4/98VbMyi8eCqu7lLFqrTl82OImlTAegwcd3/GnSrrqppaHpyQM2ZSrLpXtuUhuJ2iKsFCKGb0tzBSNusxMO7Ggv+DeSzewNOXeSwXRaqXcYRycIjiUwqa1ereiUe+EzWnBRTjByZLlyJpya6QCOFf0NF3RI0uqHcGCJqbU/vQd4kA3HgGVfyBqjvInE2qyTRNNWYPSwydbjb/tEzH4fRQUHbpZejhna8Uc0tGIIFCmGrtIu2rJK/c1A2TAw3tXIrEs/XxDENeOMoBDrW9KR+jehNPWCkCKRp0WfFyLOHcXm7N0qYSijX4hieoMlAxcCIfoahJX6qBL1fGcAlUzBmpfg+RxXiN3at7W8OddbEDIWiXC3DdibeYC0CXh5/ywioLPdU3cYm5l6wZSyAYnu7Owe8i0lpTzYnqx5azWPmtmzbiXlBZJn+srtfa9g3KWqtIqOiW85tl830lYv1B+EhYr1L5w8yk5SnMSYE91U0rPJVC7B9w3J1/ezpuj9sN2/6iwramPbXFbecrAovp0IvaVBrKsbfCIFHqZ/HuhjZiS/9IEbv4H5VpbU9s6EP41eQzje9xHSELoHAq0YaalLx3FVmyBYnlkObdfX8mRb9gOAcZx0sMwGWl18Wr3+1Yr2T19uFhPKAj9b8SFuKcp7rqnj3qaphqa1hP/irvZSexU4FHkyk65YIq2UAoVKY2RC6NSR0YIZigsCx0SBNBhJRmglKzK3eYEl58aAg9WBFMH4Kr0J3KZL1dhKrn8BiLPT5+sKrJlAdLOUhD5wCWrgkgf9/QhJYTtSov1EGJhvNQu98Qwbn684G8hgo8Pz/3J1/uH/m6y6/cMyZZAYcA+PPUvch1s7d+3d8+xsx16y98jovbTpbFNai/ocvPJKqHMJx4JAB7n0itK4sCFYlaF1/I+t4SEXKhy4TNkbCOxAGJGuMhnCyxb4RqxX2L4hSlrT4WW0VrOnFQ2aSVgdFMYJKpPxbZ8WFJLx+3WJxb1Cg5v2FL2i0hMHbjHgCmkAfUg29fPyBDDqQbJAnIt+UAKMWBoWdYOSMx7Wb9s6ANBXG9Nkfw0UnBKdqppPZ1ip5gclaODFwpq5KIEM+/Aj1R4CXAslzBewkTBH9CBfF1uFWAYc+4LIK18xOA0BImBVzz8lGEConAXEOZoLeAmfbmElMH1B7xZNb6cRbfLRkxtuCrECynyC6HCVpq9VbLzHqNOzUcyvr+zoXL19ftU97XZxOub50LK1sllVNlVazHtk+Q61F17tSyQ4I4wNBcazOCcUCg58cqpucvUt8kwRxgPCSY0Gau7JrRdg8sjRskLLLTY2ky3rDbZYjWEnAJdMlmRL0ZbfKkGoSeecXTIIbXAoJxPb21spW0t3+Xa39iaKXUA9fQjUe+//pbCG+Q+0cGfP5NQvZxMrGwxJx8pTyB9OdTLtYZWjuTlfUoW+D0EgcMHCi9eV+OqTxazOHo7ph4vn+g4odArBpy+oDBJ0jgV6Od2prasaL5KbevSstb2mVoSDM4l2rQdNawDo4bVZdSwmrMyMGeQ/tNJmVETco5LFu1/SJbmrfOAROpYZNmnZIEsNyBwuVO4ZT7Pk2OhXu98i1DPJiNtG/bmgXvEly5hb1Zg/0iR54mUiGtwurmRMSgD3+o83Ntd4v5j5+3OTmLNudIBfDG75ItaPYo1XbXcghnEry50MfICXna4xTiz9CtBDOQAfCkbFsh1d8iAEdqCWTKfMH4o7q+TxZhXPXO0j1nyPZIc3MtODUVHNSO4kXF95cKyB2aJdfKJH73CT7uQ+TyCn72dr3fX2bzeORV2dbobqdVz+h35N8ilNlwg5ewaaLp6XuyqHjCHPgi8M7mUylKII1xKNVOtZL4RCWAV7if/utCyO7Zk/QsoXrrkwgcceygQ3AXiFwUuDwpMHOyAECaI5YWZWCAnCkOBJ9qoF104Es7iiw3xQ+Oqe7htWfOlSCA8+p7YVOfj8oZUuVtRkj/e4oLIzxLztpzPn1dyvp7mBMXMW6nx/pf3e59X869LdlEr/0ZHH/8F \ No newline at end of file diff --git a/docs/developers/plugins.md b/docs/developers/plugins.md index 95beb1453b9..2fe6eb4b628 100644 --- a/docs/developers/plugins.md +++ b/docs/developers/plugins.md @@ -141,3 +141,9 @@ Plugins are notified during throughout the update process. Plugins can interact with the chart throughout the render process. The rendering process is documented in the flowchart below. Each of the green processes is a plugin notification. The red lines indicate how cancelling part of the render process can occur when a plugin returns `false` from a hook. Not all hooks are cancelable, however, in general most `before*` hooks can be cancelled. ![Chart.js render pipeline flowchart](./render_flowchart.png) + +### Event Handling + +Plugins can interact with the chart during the event handling process. The event handling flow is documented in the flowchart below. Each of the green processes is a plugin notification. If a plugin makes changes that require a re-render, the plugin can set `args.changed` to `true` to indicate that a render is needed. The built-in tooltip plugin uses this method to indicate when the tooltip has changed. + +![Chart.js event handling flowchart](./event_flowchart.png)