Repository: fabricjs/fabric.js
Pull request #9479 (2023-11-04 08:05:43)

chore(): expose `sendVectorToPlane`
<!--
        Hi there!
        Thanks for taking the time and putting the effort into making fabric better! 💖
        Take a look at /CONTRIBUTING.md for crucial instructions regarding local setup, testing etc.
        https://github.com/fabricjs/fabric.js/blob/master/CONTRIBUTING.md

        Adding tests that verify your fix and safeguard it from unwanted loss and changes is a MUST.

        Pull Requests are not always simple. Don't hesitate to ask for help (beware of [gotchas](http://fabricjs.com/fabric-gotchas) 😓).
        We appreciate your effort and would like the process to be productive and enjoyable.
        A strong community means a strong and better product for everyone.
-->

## Motivation

<!-- Why you are proposing -->
<!-- You can use the @closes notation to mark issues that will be resolved by this PR -->

send plane utils are proving to be valuble 
send a vector is also very common and completes the util

## Description

expose `sendVectorToPlane`
migrate send plane tests to jest, removing the `sendPointToPlane` old test that was unnecessary
<!-- What you are proposing -->

## Changes

<!-- before the fix vs. after -->

## Gist

<!-- Technical stuff if necessary -->

## In Action

<!-- Show case your accomplishment -->
<!-- Upload screenshots, screencasts and live examples showing your fix in contrast to the current state -->


github-actions[bot]: <!-- BUILD STATS COMMENT -->
**Build Stats**

 | file / KB (diff) | bundled | minified | 
 | --- | --- | --- | 
 | fabric | 910.393 (**+0.055**) | 305.256 (**+0.180**) | 

github-actions[bot]: Coverage after merging <b>sendVectorToPlane</b> into <b>master</b> will be<table><tbody><tr><th>82.90%</th></tr></tbody></table>

<details><summary>Coverage Report</summary><table><tbody><tr><th>File</th><th>Stmts</th><th>Branches</th><th>Funcs</th><th>Lines</th><th>Uncovered Lines</th></tr><tr><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/index.node.ts'>index.node.ts</a></td><td><b>7.69%</b></td><td>100%</td><td><b>0%</b></td><td><b>14.29%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/index.node.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/index.node.ts#L20'>20</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/index.node.ts#L23'>23</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/index.node.ts#L35'>35</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/index.node.ts#L38'>38</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/index.node.ts#L41'>41</a></td></tr><tr><td colspan='6'><b>src</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/ClassRegistry.ts'>ClassRegistry.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Collection.ts'>Collection.ts</a></td><td><b>94.71%</b></td><td><b>94.64%</b></td><td><b>86.67%</b></td><td><b>97.09%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Collection.ts#L101'>101</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Collection.ts#L104'>104</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Collection.ts#L207-L208'>207&ndash;208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Collection.ts#L233-L234'>233&ndash;234</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/CommonMethods.ts'>CommonMethods.ts</a></td><td><b>96.55%</b></td><td><b>87.50%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/CommonMethods.ts#L9'>9</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Intersection.ts'>Intersection.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Observable.ts'>Observable.ts</a></td><td><b>87.76%</b></td><td><b>85.29%</b></td><td><b>87.50%</b></td><td><b>89.58%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Observable.ts#L134-L135'>134&ndash;135</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Observable.ts#L160-L161'>160&ndash;161</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Observable.ts#L32-L33'>32&ndash;33</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Observable.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Observable.ts#L50'>50</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Observable.ts#L78'>78</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Observable.ts#L89'>89</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Point.ts'>Point.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Shadow.ts'>Shadow.ts</a></td><td><b>98.36%</b></td><td><b>95.65%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Shadow.ts#L178'>178</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/cache.ts'>cache.ts</a></td><td><b>97.06%</b></td><td><b>90%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/cache.ts#L57'>57</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/config.ts'>config.ts</a></td><td><b>75%</b></td><td><b>66.67%</b></td><td><b>66.67%</b></td><td><b>82.76%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/config.ts#L130'>130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/config.ts#L138-L140'>138&ndash;140</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/config.ts#L151-L153'>151&ndash;153</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/constants.ts'>constants.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td colspan='6'><b>src/Pattern</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Pattern/Pattern.ts'>Pattern.ts</a></td><td><b>92.31%</b></td><td><b>91.89%</b></td><td><b>90%</b></td><td><b>93.55%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Pattern/Pattern.ts#L119'>119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Pattern/Pattern.ts#L130'>130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Pattern/Pattern.ts#L139'>139</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Pattern/Pattern.ts#L32'>32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/Pattern/Pattern.ts#L95'>95</a></td></tr><tr><td colspan='6'><b>src/brushes</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/BaseBrush.ts'>BaseBrush.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts'>CircleBrush.ts</a></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L110'>110</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L112'>112</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L114-L116'>114&ndash;116</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L118-L121'>118&ndash;121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L128-L129'>128&ndash;129</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L13'>13</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L23-L24'>23&ndash;24</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L32-L36'>32&ndash;36</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L40-L44'>40&ndash;44</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L51-L54'>51&ndash;54</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L62-L66'>62&ndash;66</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L68'>68</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L76-L77'>76&ndash;77</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L79'>79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L79'>79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L79-L82'>79&ndash;82</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L84'>84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L92-L93'>92&ndash;93</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L95'>95</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/CircleBrush.ts#L97-L99'>97&ndash;99</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/PatternBrush.ts'>PatternBrush.ts</a></td><td><b>97.06%</b></td><td><b>87.50%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/PatternBrush.ts#L21'>21</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/PencilBrush.ts'>PencilBrush.ts</a></td><td><b>91.06%</b></td><td><b>82.35%</b></td><td>100%</td><td><b>93.81%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/PencilBrush.ts#L122-L123'>122&ndash;123</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/PencilBrush.ts#L152'>152</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/PencilBrush.ts#L152-L154'>152&ndash;154</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/PencilBrush.ts#L276'>276</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/PencilBrush.ts#L280'>280</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/PencilBrush.ts#L285-L286'>285&ndash;286</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/PencilBrush.ts#L68-L69'>68&ndash;69</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/PencilBrush.ts#L84-L85'>84&ndash;85</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts'>SprayBrush.ts</a></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L107-L108'>107&ndash;108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L110-L111'>110&ndash;111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L118-L119'>118&ndash;119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L123-L127'>123&ndash;127</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L140-L141'>140&ndash;141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L141'>141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L149'>149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L149'>149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L149-L152'>149&ndash;152</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L154-L157'>154&ndash;157</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L161-L162'>161&ndash;162</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L164'>164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L166-L169'>166&ndash;169</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L172'>172</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L179'>179</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L18'>18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L180'>180</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L182'>182</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L184-L185'>184&ndash;185</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L187'>187</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L194-L195'>194&ndash;195</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L197-L198'>197&ndash;198</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L20'>20</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L201'>201</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L201'>201</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L208'>208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L208'>208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L21'>21</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L212'>212</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L22-L24'>22&ndash;24</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L28'>28</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L32'>32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L39'>39</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L46'>46</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L53'>53</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L60'>60</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L84-L86'>84&ndash;86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L94-L96'>94&ndash;96</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/brushes/SprayBrush.ts#L98-L99'>98&ndash;99</a></td></tr><tr><td colspan='6'><b>src/canvas</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts'>Canvas.ts</a></td><td><b>78.99%</b></td><td><b>76.67%</b></td><td><b>83.05%</b></td><td><b>80.04%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1007'>1007</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1007'>1007</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1007-L1009'>1007&ndash;1009</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1009'>1009</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1009'>1009</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1016-L1017'>1016&ndash;1017</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1025-L1026'>1025&ndash;1026</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1026'>1026</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1026-L1027'>1026&ndash;1027</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1033'>1033</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1035'>1035</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1063-L1065'>1063&ndash;1065</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1068-L1069'>1068&ndash;1069</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1073-L1074'>1073&ndash;1074</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1197-L1199'>1197&ndash;1199</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1202-L1203'>1202&ndash;1203</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1276'>1276</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1393'>1393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L1515'>1515</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L159'>159</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L184'>184</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L291-L292'>291&ndash;292</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L295-L299'>295&ndash;299</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L304'>304</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L327-L328'>327&ndash;328</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L333-L338'>333&ndash;338</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L358'>358</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L358'>358</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L358-L359'>358&ndash;359</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L359'>359</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L359-L360'>359&ndash;360</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L368'>368</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L373-L374'>373&ndash;374</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L374'>374</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L374-L375'>374&ndash;375</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L377'>377</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L386'>386</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L392-L393'>392&ndash;393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L393'>393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L393'>393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L43'>43</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L436'>436</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L444'>444</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L448'>448</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L448'>448</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L448-L449'>448&ndash;449</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L451'>451</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L47'>47</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L533-L534'>533&ndash;534</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L534'>534</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L534-L535'>534&ndash;535</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L541'>541</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L541'>541</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L541-L543'>541&ndash;543</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L563'>563</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L565'>565</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L565'>565</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L565-L566'>565&ndash;566</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L566'>566</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L566'>566</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L569'>569</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L569'>569</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L569-L570'>569&ndash;570</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L573'>573</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L582-L583'>582&ndash;583</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L585-L586'>585&ndash;586</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L588'>588</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L588-L589'>588&ndash;589</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L591-L592'>591&ndash;592</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L604-L605'>604&ndash;605</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L605'>605</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L605-L606'>605&ndash;606</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L608-L613'>608&ndash;613</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L619'>619</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L626'>626</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L663'>663</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L663'>663</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L663'>663</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L665'>665</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L667-L672'>667&ndash;672</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L678'>678</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L684'>684</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L684'>684</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L684-L685'>684&ndash;685</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L687'>687</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L690'>690</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L695'>695</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L708'>708</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L736'>736</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L736'>736</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L797-L798'>797&ndash;798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L801-L802'>801&ndash;802</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L805'>805</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L805-L807'>805&ndash;807</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L810-L811'>810&ndash;811</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L887'>887</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L899'>899</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L906'>906</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L906'>906</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L906'>906</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L919'>919</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L952'>952</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L973-L974'>973&ndash;974</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L990-L991'>990&ndash;991</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L991'>991</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L991-L993'>991&ndash;993</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L996-L997'>996&ndash;997</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L997'>997</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L997'>997</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/Canvas.ts#L999'>999</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/CanvasOptions.ts'>CanvasOptions.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts'>SelectableCanvas.ts</a></td><td><b>94.34%</b></td><td><b>91.94%</b></td><td><b>94.34%</b></td><td><b>96.21%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L1096'>1096</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L1098'>1098</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L1100-L1101'>1100&ndash;1101</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L300'>300</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L470-L471'>470&ndash;471</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L473-L474'>473&ndash;474</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L474'>474</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L474'>474</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L523-L524'>523&ndash;524</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L585-L586'>585&ndash;586</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L599'>599</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L639-L641'>639&ndash;641</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L673'>673</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L678-L679'>678&ndash;679</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L706-L707'>706&ndash;707</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L896'>896</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L896-L897'>896&ndash;897</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L900'>900</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L920'>920</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L920'>920</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L969'>969</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/SelectableCanvas.ts#L977'>977</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts'>StaticCanvas.ts</a></td><td><b>96.78%</b></td><td><b>93.09%</b></td><td>100%</td><td><b>98.53%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts#L1031'>1031</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts#L1041'>1041</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts#L1093-L1094'>1093&ndash;1094</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts#L1097'>1097</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts#L1132-L1133'>1132&ndash;1133</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts#L1209'>1209</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts#L1218'>1218</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts#L1218'>1218</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts#L1222'>1222</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts#L1222'>1222</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts#L1269-L1270'>1269&ndash;1270</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts#L187-L188'>187&ndash;188</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts#L204'>204</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts#L571'>571</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts#L583-L584'>583&ndash;584</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts#L914-L915'>914&ndash;915</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts#L915'>915</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvas.ts#L915-L916'>915&ndash;916</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/StaticCanvasOptions.ts'>StaticCanvasOptions.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/TextEditingManager.ts'>TextEditingManager.ts</a></td><td><b>84.31%</b></td><td><b>71.43%</b></td><td><b>91.67%</b></td><td><b>88%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/TextEditingManager.ts#L17-L18'>17&ndash;18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/TextEditingManager.ts#L18'>18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/TextEditingManager.ts#L18-L19'>18&ndash;19</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/TextEditingManager.ts#L19'>19</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/TextEditingManager.ts#L19'>19</a></td></tr><tr><td colspan='6'><b>src/canvas/DOMManagers</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/DOMManagers/CanvasDOMManager.ts'>CanvasDOMManager.ts</a></td><td><b>95.52%</b></td><td><b>70%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/DOMManagers/CanvasDOMManager.ts#L21-L22'>21&ndash;22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/DOMManagers/CanvasDOMManager.ts#L29'>29</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/DOMManagers/StaticCanvasDOMManager.ts'>StaticCanvasDOMManager.ts</a></td><td><b>97.50%</b></td><td><b>88.89%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/DOMManagers/StaticCanvasDOMManager.ts#L33'>33</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/DOMManagers/util.ts'>util.ts</a></td><td><b>86.67%</b></td><td><b>80.56%</b></td><td><b>83.33%</b></td><td><b>93.94%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/DOMManagers/util.ts#L14'>14</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/DOMManagers/util.ts#L26'>26</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/DOMManagers/util.ts#L63-L64'>63&ndash;64</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/DOMManagers/util.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/DOMManagers/util.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/DOMManagers/util.ts#L74'>74</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/canvas/DOMManagers/util.ts#L93-L94'>93&ndash;94</a></td></tr><tr><td colspan='6'><b>src/color</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/color/Color.ts'>Color.ts</a></td><td><b>94.96%</b></td><td><b>91.67%</b></td><td><b>96.30%</b></td><td><b>96.05%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/color/Color.ts#L233'>233</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/color/Color.ts#L258-L259'>258&ndash;259</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/color/Color.ts#L267-L268'>267&ndash;268</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/color/Color.ts#L48'>48</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/color/color_map.ts'>color_map.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/color/constants.ts'>constants.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/color/util.ts'>util.ts</a></td><td><b>85.71%</b></td><td><b>76.92%</b></td><td>100%</td><td><b>89.74%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/color/util.ts#L55-L56'>55&ndash;56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/color/util.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/color/util.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/color/util.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/color/util.ts#L58-L59'>58&ndash;59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/color/util.ts#L61-L62'>61&ndash;62</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/color/util.ts#L89'>89</a></td></tr><tr><td colspan='6'><b>src/controls</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/Control.ts'>Control.ts</a></td><td><b>94.44%</b></td><td><b>93.10%</b></td><td><b>91.67%</b></td><td><b>96.77%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/Control.ts#L183'>183</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/Control.ts#L249'>249</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/Control.ts#L354'>354</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/changeWidth.ts'>changeWidth.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/commonControls.ts'>commonControls.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/controlRendering.ts'>controlRendering.ts</a></td><td><b>81.63%</b></td><td><b>78%</b></td><td>100%</td><td><b>84.78%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/controlRendering.ts#L106'>106</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/controlRendering.ts#L111'>111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/controlRendering.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/controlRendering.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/controlRendering.ts#L45'>45</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/controlRendering.ts#L50'>50</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/controlRendering.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/controlRendering.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/controlRendering.ts#L65-L72'>65&ndash;72</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/controlRendering.ts#L81-L82'>81&ndash;82</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/drag.ts'>drag.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/fireEvent.ts'>fireEvent.ts</a></td><td><b>88.89%</b></td><td><b>75%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/fireEvent.ts#L13'>13</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts'>polyControl.ts</a></td><td><b>7.25%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>13.51%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L103'>103</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L122-L125'>122&ndash;125</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L125'>125</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L128'>128</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L135'>135</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L25-L29'>25&ndash;29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L50-L56'>50&ndash;56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L63-L64'>63&ndash;64</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L66'>66</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L82-L84'>82&ndash;84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L84'>84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L86'>86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L89-L90'>89&ndash;90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L92'>92</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/polyControl.ts#L97'>97</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts'>rotate.ts</a></td><td><b>19.57%</b></td><td><b>12.50%</b></td><td><b>50%</b></td><td><b>21.43%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L45'>45</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L51'>51</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L51'>51</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L51-L52'>51&ndash;52</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L55-L57'>55&ndash;57</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L59-L61'>59&ndash;61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L61-L63'>61&ndash;63</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L65'>65</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L65'>65</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L65-L67'>65&ndash;67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L67-L68'>67&ndash;68</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L73'>73</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L73'>73</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L73-L74'>73&ndash;74</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L78'>78</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/rotate.ts#L80-L81'>80&ndash;81</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/scale.ts'>scale.ts</a></td><td><b>93.57%</b></td><td><b>92.94%</b></td><td>100%</td><td><b>93.67%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/scale.ts#L129-L130'>129&ndash;130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/scale.ts#L132-L134'>132&ndash;134</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/scale.ts#L148-L149'>148&ndash;149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/scale.ts#L181-L183'>181&ndash;183</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/scale.ts#L42'>42</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/scaleSkew.ts'>scaleSkew.ts</a></td><td><b>78.79%</b></td><td><b>64.29%</b></td><td>100%</td><td><b>85.71%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/scaleSkew.ts#L27'>27</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/scaleSkew.ts#L31'>31</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/scaleSkew.ts#L33'>33</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/scaleSkew.ts#L35'>35</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/skew.ts'>skew.ts</a></td><td><b>91.03%</b></td><td><b>79.31%</b></td><td>100%</td><td><b>97.67%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/skew.ts#L131-L132'>131&ndash;132</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/skew.ts#L163-L164'>163&ndash;164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/skew.ts#L171'>171</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/skew.ts#L177'>177</a>, <a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/skew.ts#L179'>179</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/util.ts'>util.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/wrapWithFireEvent.ts'>wrapWithFireEvent.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/25a3d661e9eac5df7dc8891a6b7d051c5ecb140a/src/controls/wrapWithFixedAnchor.ts'>wrapWithFixedAnchor.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td colspan='6'><b>src/env</b></td></tr><tr><td>&nbsp; &nbsp;<a href='htt
github-actions[bot]: Coverage after merging <b>sendVectorToPlane</b> into <b>master</b> will be<table><tbody><tr><th>82.90%</th></tr></tbody></table>

<details><summary>Coverage Report</summary><table><tbody><tr><th>File</th><th>Stmts</th><th>Branches</th><th>Funcs</th><th>Lines</th><th>Uncovered Lines</th></tr><tr><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/index.node.ts'>index.node.ts</a></td><td><b>7.69%</b></td><td>100%</td><td><b>0%</b></td><td><b>14.29%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/index.node.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/index.node.ts#L20'>20</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/index.node.ts#L23'>23</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/index.node.ts#L35'>35</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/index.node.ts#L38'>38</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/index.node.ts#L41'>41</a></td></tr><tr><td colspan='6'><b>src</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/ClassRegistry.ts'>ClassRegistry.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Collection.ts'>Collection.ts</a></td><td><b>94.71%</b></td><td><b>94.64%</b></td><td><b>86.67%</b></td><td><b>97.09%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Collection.ts#L101'>101</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Collection.ts#L104'>104</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Collection.ts#L207-L208'>207&ndash;208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Collection.ts#L233-L234'>233&ndash;234</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/CommonMethods.ts'>CommonMethods.ts</a></td><td><b>96.55%</b></td><td><b>87.50%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/CommonMethods.ts#L9'>9</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Intersection.ts'>Intersection.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Observable.ts'>Observable.ts</a></td><td><b>87.76%</b></td><td><b>85.29%</b></td><td><b>87.50%</b></td><td><b>89.58%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Observable.ts#L134-L135'>134&ndash;135</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Observable.ts#L160-L161'>160&ndash;161</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Observable.ts#L32-L33'>32&ndash;33</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Observable.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Observable.ts#L50'>50</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Observable.ts#L78'>78</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Observable.ts#L89'>89</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Point.ts'>Point.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Shadow.ts'>Shadow.ts</a></td><td><b>98.36%</b></td><td><b>95.65%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Shadow.ts#L178'>178</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/cache.ts'>cache.ts</a></td><td><b>97.06%</b></td><td><b>90%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/cache.ts#L57'>57</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/config.ts'>config.ts</a></td><td><b>75%</b></td><td><b>66.67%</b></td><td><b>66.67%</b></td><td><b>82.76%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/config.ts#L130'>130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/config.ts#L138-L140'>138&ndash;140</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/config.ts#L151-L153'>151&ndash;153</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/constants.ts'>constants.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td colspan='6'><b>src/Pattern</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Pattern/Pattern.ts'>Pattern.ts</a></td><td><b>92.31%</b></td><td><b>91.89%</b></td><td><b>90%</b></td><td><b>93.55%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Pattern/Pattern.ts#L119'>119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Pattern/Pattern.ts#L130'>130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Pattern/Pattern.ts#L139'>139</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Pattern/Pattern.ts#L32'>32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/Pattern/Pattern.ts#L95'>95</a></td></tr><tr><td colspan='6'><b>src/brushes</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/BaseBrush.ts'>BaseBrush.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts'>CircleBrush.ts</a></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L110'>110</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L112'>112</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L114-L116'>114&ndash;116</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L118-L121'>118&ndash;121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L128-L129'>128&ndash;129</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L13'>13</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L23-L24'>23&ndash;24</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L32-L36'>32&ndash;36</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L40-L44'>40&ndash;44</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L51-L54'>51&ndash;54</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L62-L66'>62&ndash;66</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L68'>68</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L76-L77'>76&ndash;77</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L79'>79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L79'>79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L79-L82'>79&ndash;82</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L84'>84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L92-L93'>92&ndash;93</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L95'>95</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/CircleBrush.ts#L97-L99'>97&ndash;99</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/PatternBrush.ts'>PatternBrush.ts</a></td><td><b>97.06%</b></td><td><b>87.50%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/PatternBrush.ts#L21'>21</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/PencilBrush.ts'>PencilBrush.ts</a></td><td><b>91.06%</b></td><td><b>82.35%</b></td><td>100%</td><td><b>93.81%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/PencilBrush.ts#L122-L123'>122&ndash;123</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/PencilBrush.ts#L152'>152</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/PencilBrush.ts#L152-L154'>152&ndash;154</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/PencilBrush.ts#L276'>276</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/PencilBrush.ts#L280'>280</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/PencilBrush.ts#L285-L286'>285&ndash;286</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/PencilBrush.ts#L68-L69'>68&ndash;69</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/PencilBrush.ts#L84-L85'>84&ndash;85</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts'>SprayBrush.ts</a></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L107-L108'>107&ndash;108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L110-L111'>110&ndash;111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L118-L119'>118&ndash;119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L123-L127'>123&ndash;127</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L140-L141'>140&ndash;141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L141'>141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L149'>149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L149'>149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L149-L152'>149&ndash;152</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L154-L157'>154&ndash;157</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L161-L162'>161&ndash;162</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L164'>164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L166-L169'>166&ndash;169</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L172'>172</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L179'>179</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L18'>18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L180'>180</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L182'>182</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L184-L185'>184&ndash;185</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L187'>187</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L194-L195'>194&ndash;195</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L197-L198'>197&ndash;198</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L20'>20</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L201'>201</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L201'>201</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L208'>208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L208'>208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L21'>21</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L212'>212</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L22-L24'>22&ndash;24</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L28'>28</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L32'>32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L39'>39</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L46'>46</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L53'>53</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L60'>60</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L84-L86'>84&ndash;86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L94-L96'>94&ndash;96</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/brushes/SprayBrush.ts#L98-L99'>98&ndash;99</a></td></tr><tr><td colspan='6'><b>src/canvas</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts'>Canvas.ts</a></td><td><b>78.99%</b></td><td><b>76.67%</b></td><td><b>83.05%</b></td><td><b>80.04%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1007'>1007</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1007'>1007</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1007-L1009'>1007&ndash;1009</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1009'>1009</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1009'>1009</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1016-L1017'>1016&ndash;1017</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1025-L1026'>1025&ndash;1026</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1026'>1026</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1026-L1027'>1026&ndash;1027</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1033'>1033</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1035'>1035</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1063-L1065'>1063&ndash;1065</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1068-L1069'>1068&ndash;1069</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1073-L1074'>1073&ndash;1074</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1197-L1199'>1197&ndash;1199</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1202-L1203'>1202&ndash;1203</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1276'>1276</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1393'>1393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L1515'>1515</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L159'>159</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L184'>184</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L291-L292'>291&ndash;292</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L295-L299'>295&ndash;299</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L304'>304</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L327-L328'>327&ndash;328</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L333-L338'>333&ndash;338</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L358'>358</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L358'>358</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L358-L359'>358&ndash;359</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L359'>359</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L359-L360'>359&ndash;360</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L368'>368</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L373-L374'>373&ndash;374</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L374'>374</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L374-L375'>374&ndash;375</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L377'>377</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L386'>386</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L392-L393'>392&ndash;393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L393'>393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L393'>393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L43'>43</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L436'>436</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L444'>444</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L448'>448</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L448'>448</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L448-L449'>448&ndash;449</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L451'>451</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L47'>47</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L533-L534'>533&ndash;534</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L534'>534</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L534-L535'>534&ndash;535</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L541'>541</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L541'>541</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L541-L543'>541&ndash;543</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L563'>563</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L565'>565</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L565'>565</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L565-L566'>565&ndash;566</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L566'>566</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L566'>566</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L569'>569</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L569'>569</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L569-L570'>569&ndash;570</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L573'>573</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L582-L583'>582&ndash;583</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L585-L586'>585&ndash;586</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L588'>588</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L588-L589'>588&ndash;589</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L591-L592'>591&ndash;592</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L604-L605'>604&ndash;605</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L605'>605</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L605-L606'>605&ndash;606</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L608-L613'>608&ndash;613</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L619'>619</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L626'>626</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L663'>663</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L663'>663</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L663'>663</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L665'>665</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L667-L672'>667&ndash;672</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L678'>678</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L684'>684</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L684'>684</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L684-L685'>684&ndash;685</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L687'>687</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L690'>690</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L695'>695</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L708'>708</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L736'>736</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L736'>736</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L797-L798'>797&ndash;798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L801-L802'>801&ndash;802</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L805'>805</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L805-L807'>805&ndash;807</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L810-L811'>810&ndash;811</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L887'>887</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L899'>899</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L906'>906</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L906'>906</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L906'>906</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L919'>919</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L952'>952</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L973-L974'>973&ndash;974</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L990-L991'>990&ndash;991</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L991'>991</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L991-L993'>991&ndash;993</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L996-L997'>996&ndash;997</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L997'>997</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L997'>997</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/Canvas.ts#L999'>999</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/CanvasOptions.ts'>CanvasOptions.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts'>SelectableCanvas.ts</a></td><td><b>94.34%</b></td><td><b>91.94%</b></td><td><b>94.34%</b></td><td><b>96.21%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L1096'>1096</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L1098'>1098</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L1100-L1101'>1100&ndash;1101</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L300'>300</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L470-L471'>470&ndash;471</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L473-L474'>473&ndash;474</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L474'>474</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L474'>474</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L523-L524'>523&ndash;524</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L585-L586'>585&ndash;586</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L599'>599</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L639-L641'>639&ndash;641</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L673'>673</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L678-L679'>678&ndash;679</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L706-L707'>706&ndash;707</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L896'>896</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L896-L897'>896&ndash;897</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L900'>900</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L920'>920</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L920'>920</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L969'>969</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/SelectableCanvas.ts#L977'>977</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts'>StaticCanvas.ts</a></td><td><b>96.78%</b></td><td><b>93.09%</b></td><td>100%</td><td><b>98.53%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts#L1031'>1031</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts#L1041'>1041</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts#L1093-L1094'>1093&ndash;1094</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts#L1097'>1097</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts#L1132-L1133'>1132&ndash;1133</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts#L1209'>1209</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts#L1218'>1218</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts#L1218'>1218</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts#L1222'>1222</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts#L1222'>1222</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts#L1269-L1270'>1269&ndash;1270</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts#L187-L188'>187&ndash;188</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts#L204'>204</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts#L571'>571</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts#L583-L584'>583&ndash;584</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts#L914-L915'>914&ndash;915</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts#L915'>915</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvas.ts#L915-L916'>915&ndash;916</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/StaticCanvasOptions.ts'>StaticCanvasOptions.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/TextEditingManager.ts'>TextEditingManager.ts</a></td><td><b>84.31%</b></td><td><b>71.43%</b></td><td><b>91.67%</b></td><td><b>88%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/TextEditingManager.ts#L17-L18'>17&ndash;18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/TextEditingManager.ts#L18'>18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/TextEditingManager.ts#L18-L19'>18&ndash;19</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/TextEditingManager.ts#L19'>19</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/TextEditingManager.ts#L19'>19</a></td></tr><tr><td colspan='6'><b>src/canvas/DOMManagers</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/DOMManagers/CanvasDOMManager.ts'>CanvasDOMManager.ts</a></td><td><b>95.52%</b></td><td><b>70%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/DOMManagers/CanvasDOMManager.ts#L21-L22'>21&ndash;22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/DOMManagers/CanvasDOMManager.ts#L29'>29</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/DOMManagers/StaticCanvasDOMManager.ts'>StaticCanvasDOMManager.ts</a></td><td><b>97.50%</b></td><td><b>88.89%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/DOMManagers/StaticCanvasDOMManager.ts#L33'>33</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/DOMManagers/util.ts'>util.ts</a></td><td><b>86.67%</b></td><td><b>80.56%</b></td><td><b>83.33%</b></td><td><b>93.94%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/DOMManagers/util.ts#L14'>14</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/DOMManagers/util.ts#L26'>26</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/DOMManagers/util.ts#L63-L64'>63&ndash;64</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/DOMManagers/util.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/DOMManagers/util.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/DOMManagers/util.ts#L74'>74</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/canvas/DOMManagers/util.ts#L93-L94'>93&ndash;94</a></td></tr><tr><td colspan='6'><b>src/color</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/color/Color.ts'>Color.ts</a></td><td><b>94.96%</b></td><td><b>91.67%</b></td><td><b>96.30%</b></td><td><b>96.05%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/color/Color.ts#L233'>233</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/color/Color.ts#L258-L259'>258&ndash;259</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/color/Color.ts#L267-L268'>267&ndash;268</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/color/Color.ts#L48'>48</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/color/color_map.ts'>color_map.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/color/constants.ts'>constants.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/color/util.ts'>util.ts</a></td><td><b>85.71%</b></td><td><b>76.92%</b></td><td>100%</td><td><b>89.74%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/color/util.ts#L55-L56'>55&ndash;56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/color/util.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/color/util.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/color/util.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/color/util.ts#L58-L59'>58&ndash;59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/color/util.ts#L61-L62'>61&ndash;62</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/color/util.ts#L89'>89</a></td></tr><tr><td colspan='6'><b>src/controls</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/Control.ts'>Control.ts</a></td><td><b>94.44%</b></td><td><b>93.10%</b></td><td><b>91.67%</b></td><td><b>96.77%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/Control.ts#L183'>183</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/Control.ts#L249'>249</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/Control.ts#L354'>354</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/changeWidth.ts'>changeWidth.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/commonControls.ts'>commonControls.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/controlRendering.ts'>controlRendering.ts</a></td><td><b>81.63%</b></td><td><b>78%</b></td><td>100%</td><td><b>84.78%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/controlRendering.ts#L106'>106</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/controlRendering.ts#L111'>111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/controlRendering.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/controlRendering.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/controlRendering.ts#L45'>45</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/controlRendering.ts#L50'>50</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/controlRendering.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/controlRendering.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/controlRendering.ts#L65-L72'>65&ndash;72</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/controlRendering.ts#L81-L82'>81&ndash;82</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/drag.ts'>drag.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/fireEvent.ts'>fireEvent.ts</a></td><td><b>88.89%</b></td><td><b>75%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/fireEvent.ts#L13'>13</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts'>polyControl.ts</a></td><td><b>7.25%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>13.51%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L103'>103</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L122-L125'>122&ndash;125</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L125'>125</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L128'>128</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L135'>135</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L25-L29'>25&ndash;29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L50-L56'>50&ndash;56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L63-L64'>63&ndash;64</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L66'>66</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L82-L84'>82&ndash;84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L84'>84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L86'>86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L89-L90'>89&ndash;90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L92'>92</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/polyControl.ts#L97'>97</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts'>rotate.ts</a></td><td><b>19.57%</b></td><td><b>12.50%</b></td><td><b>50%</b></td><td><b>21.43%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L45'>45</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L51'>51</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L51'>51</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L51-L52'>51&ndash;52</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L55-L57'>55&ndash;57</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L59-L61'>59&ndash;61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L61-L63'>61&ndash;63</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L65'>65</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L65'>65</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L65-L67'>65&ndash;67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L67-L68'>67&ndash;68</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L73'>73</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L73'>73</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L73-L74'>73&ndash;74</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L78'>78</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/rotate.ts#L80-L81'>80&ndash;81</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/scale.ts'>scale.ts</a></td><td><b>93.57%</b></td><td><b>92.94%</b></td><td>100%</td><td><b>93.67%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/scale.ts#L129-L130'>129&ndash;130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/scale.ts#L132-L134'>132&ndash;134</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/scale.ts#L148-L149'>148&ndash;149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/scale.ts#L181-L183'>181&ndash;183</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/scale.ts#L42'>42</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/scaleSkew.ts'>scaleSkew.ts</a></td><td><b>78.79%</b></td><td><b>64.29%</b></td><td>100%</td><td><b>85.71%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/scaleSkew.ts#L27'>27</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/scaleSkew.ts#L31'>31</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/scaleSkew.ts#L33'>33</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/scaleSkew.ts#L35'>35</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/skew.ts'>skew.ts</a></td><td><b>91.03%</b></td><td><b>79.31%</b></td><td>100%</td><td><b>97.67%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/skew.ts#L131-L132'>131&ndash;132</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/skew.ts#L163-L164'>163&ndash;164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/skew.ts#L171'>171</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/skew.ts#L177'>177</a>, <a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/skew.ts#L179'>179</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/util.ts'>util.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/wrapWithFireEvent.ts'>wrapWithFireEvent.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/fd0d9453c1636e138ccc4ce059547db66be12e35/src/controls/wrapWithFixedAnchor.ts'>wrapWithFixedAnchor.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td colspan='6'><b>src/env</b></td></tr><tr><td>&nbsp; &nbsp;<a href='htt
github-actions[bot]: Coverage after merging <b>sendVectorToPlane</b> into <b>master</b> will be<table><tbody><tr><th>82.80%</th></tr></tbody></table>

<details><summary>Coverage Report</summary><table><tbody><tr><th>File</th><th>Stmts</th><th>Branches</th><th>Funcs</th><th>Lines</th><th>Uncovered Lines</th></tr><tr><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/index.node.ts'>index.node.ts</a></td><td><b>7.69%</b></td><td>100%</td><td><b>0%</b></td><td><b>14.29%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/index.node.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/index.node.ts#L20'>20</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/index.node.ts#L23'>23</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/index.node.ts#L35'>35</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/index.node.ts#L38'>38</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/index.node.ts#L41'>41</a></td></tr><tr><td colspan='6'><b>src</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/ClassRegistry.ts'>ClassRegistry.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Collection.ts'>Collection.ts</a></td><td><b>94.71%</b></td><td><b>94.64%</b></td><td><b>86.67%</b></td><td><b>97.09%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Collection.ts#L101'>101</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Collection.ts#L104'>104</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Collection.ts#L207-L208'>207&ndash;208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Collection.ts#L233-L234'>233&ndash;234</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/CommonMethods.ts'>CommonMethods.ts</a></td><td><b>96.55%</b></td><td><b>87.50%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/CommonMethods.ts#L9'>9</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Intersection.ts'>Intersection.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Observable.ts'>Observable.ts</a></td><td><b>87.76%</b></td><td><b>85.29%</b></td><td><b>87.50%</b></td><td><b>89.58%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Observable.ts#L134-L135'>134&ndash;135</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Observable.ts#L160-L161'>160&ndash;161</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Observable.ts#L32-L33'>32&ndash;33</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Observable.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Observable.ts#L50'>50</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Observable.ts#L78'>78</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Observable.ts#L89'>89</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Point.ts'>Point.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Shadow.ts'>Shadow.ts</a></td><td><b>98.36%</b></td><td><b>95.65%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Shadow.ts#L178'>178</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/cache.ts'>cache.ts</a></td><td><b>97.06%</b></td><td><b>90%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/cache.ts#L57'>57</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/config.ts'>config.ts</a></td><td><b>75%</b></td><td><b>66.67%</b></td><td><b>66.67%</b></td><td><b>82.76%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/config.ts#L130'>130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/config.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/config.ts#L138-L140'>138&ndash;140</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/config.ts#L151-L153'>151&ndash;153</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/constants.ts'>constants.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td colspan='6'><b>src/Pattern</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Pattern/Pattern.ts'>Pattern.ts</a></td><td><b>92.31%</b></td><td><b>91.89%</b></td><td><b>90%</b></td><td><b>93.55%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Pattern/Pattern.ts#L119'>119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Pattern/Pattern.ts#L130'>130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Pattern/Pattern.ts#L139'>139</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Pattern/Pattern.ts#L32'>32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/Pattern/Pattern.ts#L95'>95</a></td></tr><tr><td colspan='6'><b>src/brushes</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/BaseBrush.ts'>BaseBrush.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts'>CircleBrush.ts</a></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L110'>110</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L112'>112</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L114-L116'>114&ndash;116</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L118-L121'>118&ndash;121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L128-L129'>128&ndash;129</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L13'>13</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L23-L24'>23&ndash;24</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L32-L36'>32&ndash;36</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L40-L44'>40&ndash;44</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L51-L54'>51&ndash;54</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L62-L66'>62&ndash;66</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L68'>68</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L76-L77'>76&ndash;77</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L79'>79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L79'>79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L79-L82'>79&ndash;82</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L84'>84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L92-L93'>92&ndash;93</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L95'>95</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/CircleBrush.ts#L97-L99'>97&ndash;99</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/PatternBrush.ts'>PatternBrush.ts</a></td><td><b>97.06%</b></td><td><b>87.50%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/PatternBrush.ts#L21'>21</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/PencilBrush.ts'>PencilBrush.ts</a></td><td><b>91.06%</b></td><td><b>82.35%</b></td><td>100%</td><td><b>93.81%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/PencilBrush.ts#L122-L123'>122&ndash;123</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/PencilBrush.ts#L152'>152</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/PencilBrush.ts#L152-L154'>152&ndash;154</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/PencilBrush.ts#L276'>276</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/PencilBrush.ts#L280'>280</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/PencilBrush.ts#L285-L286'>285&ndash;286</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/PencilBrush.ts#L68-L69'>68&ndash;69</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/PencilBrush.ts#L84-L85'>84&ndash;85</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts'>SprayBrush.ts</a></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L107-L108'>107&ndash;108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L110-L111'>110&ndash;111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L118-L119'>118&ndash;119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L123-L127'>123&ndash;127</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L140-L141'>140&ndash;141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L141'>141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L149'>149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L149'>149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L149-L152'>149&ndash;152</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L154-L157'>154&ndash;157</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L161-L162'>161&ndash;162</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L164'>164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L166-L169'>166&ndash;169</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L172'>172</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L179'>179</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L18'>18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L180'>180</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L182'>182</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L184-L185'>184&ndash;185</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L187'>187</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L194-L195'>194&ndash;195</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L197-L198'>197&ndash;198</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L20'>20</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L201'>201</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L201'>201</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L208'>208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L208'>208</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L21'>21</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L212'>212</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L22-L24'>22&ndash;24</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L28'>28</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L32'>32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L39'>39</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L46'>46</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L53'>53</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L60'>60</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L84-L86'>84&ndash;86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L94-L96'>94&ndash;96</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/brushes/SprayBrush.ts#L98-L99'>98&ndash;99</a></td></tr><tr><td colspan='6'><b>src/canvas</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts'>Canvas.ts</a></td><td><b>78.99%</b></td><td><b>76.67%</b></td><td><b>83.05%</b></td><td><b>80.04%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1007'>1007</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1007'>1007</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1007-L1009'>1007&ndash;1009</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1009'>1009</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1009'>1009</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1016-L1017'>1016&ndash;1017</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1025-L1026'>1025&ndash;1026</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1026'>1026</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1026-L1027'>1026&ndash;1027</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1033'>1033</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1035'>1035</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1063-L1065'>1063&ndash;1065</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1068-L1069'>1068&ndash;1069</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1073-L1074'>1073&ndash;1074</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1197-L1199'>1197&ndash;1199</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1202-L1203'>1202&ndash;1203</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1276'>1276</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1393'>1393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L1515'>1515</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L159'>159</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L184'>184</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L291-L292'>291&ndash;292</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L295-L299'>295&ndash;299</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L304'>304</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L327-L328'>327&ndash;328</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L333-L338'>333&ndash;338</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L358'>358</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L358'>358</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L358-L359'>358&ndash;359</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L359'>359</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L359-L360'>359&ndash;360</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L368'>368</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L373-L374'>373&ndash;374</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L374'>374</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L374-L375'>374&ndash;375</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L377'>377</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L386'>386</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L392-L393'>392&ndash;393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L393'>393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L393'>393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L43'>43</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L436'>436</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L444'>444</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L448'>448</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L448'>448</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L448-L449'>448&ndash;449</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L451'>451</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L47'>47</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L533-L534'>533&ndash;534</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L534'>534</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L534-L535'>534&ndash;535</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L541'>541</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L541'>541</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L541-L543'>541&ndash;543</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L563'>563</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L565'>565</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L565'>565</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L565-L566'>565&ndash;566</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L566'>566</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L566'>566</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L569'>569</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L569'>569</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L569-L570'>569&ndash;570</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L573'>573</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L582-L583'>582&ndash;583</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L585-L586'>585&ndash;586</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L588'>588</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L588-L589'>588&ndash;589</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L591-L592'>591&ndash;592</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L604-L605'>604&ndash;605</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L605'>605</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L605-L606'>605&ndash;606</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L608-L613'>608&ndash;613</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L619'>619</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L626'>626</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L663'>663</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L663'>663</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L663'>663</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L665'>665</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L667-L672'>667&ndash;672</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L678'>678</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L684'>684</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L684'>684</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L684-L685'>684&ndash;685</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L687'>687</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L690'>690</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L695'>695</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L708'>708</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L736'>736</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L736'>736</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L797-L798'>797&ndash;798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L801-L802'>801&ndash;802</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L805'>805</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L805-L807'>805&ndash;807</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L810-L811'>810&ndash;811</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L887'>887</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L899'>899</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L906'>906</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L906'>906</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L906'>906</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L919'>919</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L952'>952</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L973-L974'>973&ndash;974</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L990-L991'>990&ndash;991</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L991'>991</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L991-L993'>991&ndash;993</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L996-L997'>996&ndash;997</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L997'>997</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L997'>997</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/Canvas.ts#L999'>999</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/CanvasOptions.ts'>CanvasOptions.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts'>SelectableCanvas.ts</a></td><td><b>93.21%</b></td><td><b>91.60%</b></td><td><b>94.44%</b></td><td><b>94.22%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L1013'>1013</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L1021'>1021</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L1140'>1140</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L1142'>1142</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L1144-L1145'>1144&ndash;1145</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L302'>302</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L472-L473'>472&ndash;473</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L475-L476'>475&ndash;476</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L476'>476</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L476'>476</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L525-L526'>525&ndash;526</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L587-L588'>587&ndash;588</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L601'>601</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L641-L643'>641&ndash;643</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L675'>675</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L680-L681'>680&ndash;681</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L708-L709'>708&ndash;709</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L769-L770'>769&ndash;770</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L775-L779'>775&ndash;779</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L781'>781</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L940'>940</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L940-L941'>940&ndash;941</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L944'>944</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L964'>964</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/SelectableCanvas.ts#L964'>964</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts'>StaticCanvas.ts</a></td><td><b>96.78%</b></td><td><b>93.09%</b></td><td>100%</td><td><b>98.53%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts#L1031'>1031</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts#L1041'>1041</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts#L1093-L1094'>1093&ndash;1094</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts#L1097'>1097</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts#L1132-L1133'>1132&ndash;1133</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts#L1209'>1209</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts#L1218'>1218</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts#L1218'>1218</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts#L1222'>1222</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts#L1222'>1222</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts#L1269-L1270'>1269&ndash;1270</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts#L187-L188'>187&ndash;188</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts#L204'>204</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts#L571'>571</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts#L583-L584'>583&ndash;584</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts#L914-L915'>914&ndash;915</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts#L915'>915</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvas.ts#L915-L916'>915&ndash;916</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/StaticCanvasOptions.ts'>StaticCanvasOptions.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/TextEditingManager.ts'>TextEditingManager.ts</a></td><td><b>84.31%</b></td><td><b>71.43%</b></td><td><b>91.67%</b></td><td><b>88%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/TextEditingManager.ts#L17-L18'>17&ndash;18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/TextEditingManager.ts#L18'>18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/TextEditingManager.ts#L18-L19'>18&ndash;19</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/TextEditingManager.ts#L19'>19</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/TextEditingManager.ts#L19'>19</a></td></tr><tr><td colspan='6'><b>src/canvas/DOMManagers</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/DOMManagers/CanvasDOMManager.ts'>CanvasDOMManager.ts</a></td><td><b>95.52%</b></td><td><b>70%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/DOMManagers/CanvasDOMManager.ts#L21-L22'>21&ndash;22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/DOMManagers/CanvasDOMManager.ts#L29'>29</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/DOMManagers/StaticCanvasDOMManager.ts'>StaticCanvasDOMManager.ts</a></td><td><b>97.50%</b></td><td><b>88.89%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/DOMManagers/StaticCanvasDOMManager.ts#L33'>33</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/DOMManagers/util.ts'>util.ts</a></td><td><b>86.67%</b></td><td><b>80.56%</b></td><td><b>83.33%</b></td><td><b>93.94%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/DOMManagers/util.ts#L14'>14</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/DOMManagers/util.ts#L26'>26</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/DOMManagers/util.ts#L63-L64'>63&ndash;64</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/DOMManagers/util.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/DOMManagers/util.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/DOMManagers/util.ts#L74'>74</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/canvas/DOMManagers/util.ts#L93-L94'>93&ndash;94</a></td></tr><tr><td colspan='6'><b>src/color</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/color/Color.ts'>Color.ts</a></td><td><b>94.96%</b></td><td><b>91.67%</b></td><td><b>96.30%</b></td><td><b>96.05%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/color/Color.ts#L233'>233</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/color/Color.ts#L258-L259'>258&ndash;259</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/color/Color.ts#L267-L268'>267&ndash;268</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/color/Color.ts#L48'>48</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/color/color_map.ts'>color_map.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/color/constants.ts'>constants.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/color/util.ts'>util.ts</a></td><td><b>85.71%</b></td><td><b>76.92%</b></td><td>100%</td><td><b>89.74%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/color/util.ts#L55-L56'>55&ndash;56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/color/util.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/color/util.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/color/util.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/color/util.ts#L58-L59'>58&ndash;59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/color/util.ts#L61-L62'>61&ndash;62</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/color/util.ts#L89'>89</a></td></tr><tr><td colspan='6'><b>src/controls</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/Control.ts'>Control.ts</a></td><td><b>94.44%</b></td><td><b>93.10%</b></td><td><b>91.67%</b></td><td><b>96.77%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/Control.ts#L183'>183</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/Control.ts#L249'>249</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/Control.ts#L354'>354</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/changeWidth.ts'>changeWidth.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/commonControls.ts'>commonControls.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/controlRendering.ts'>controlRendering.ts</a></td><td><b>81.63%</b></td><td><b>78%</b></td><td>100%</td><td><b>84.78%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/controlRendering.ts#L106'>106</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/controlRendering.ts#L111'>111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/controlRendering.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/controlRendering.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/controlRendering.ts#L45'>45</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/controlRendering.ts#L50'>50</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/controlRendering.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/controlRendering.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/controlRendering.ts#L65-L72'>65&ndash;72</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/controlRendering.ts#L81-L82'>81&ndash;82</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/drag.ts'>drag.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/fireEvent.ts'>fireEvent.ts</a></td><td><b>88.89%</b></td><td><b>75%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/fireEvent.ts#L13'>13</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts'>polyControl.ts</a></td><td><b>7.25%</b></td><td><b>0%</b></td><td><b>0%</b></td><td><b>13.51%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L103'>103</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L108'>108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L120'>120</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L122-L125'>122&ndash;125</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L125'>125</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L128'>128</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L135'>135</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L25-L29'>25&ndash;29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L50-L56'>50&ndash;56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L56'>56</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L58'>58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L63-L64'>63&ndash;64</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L66'>66</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L82-L84'>82&ndash;84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L84'>84</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L86'>86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L89-L90'>89&ndash;90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L90'>90</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L92'>92</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/polyControl.ts#L97'>97</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts'>rotate.ts</a></td><td><b>19.57%</b></td><td><b>12.50%</b></td><td><b>50%</b></td><td><b>21.43%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L45'>45</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L51'>51</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L51'>51</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L51-L52'>51&ndash;52</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L55-L57'>55&ndash;57</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L59-L61'>59&ndash;61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L61'>61</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L61-L63'>61&ndash;63</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L65'>65</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L65'>65</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L65-L67'>65&ndash;67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L67-L68'>67&ndash;68</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L73'>73</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L73'>73</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L73-L74'>73&ndash;74</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L78'>78</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/rotate.ts#L80-L81'>80&ndash;81</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/scale.ts'>scale.ts</a></td><td><b>93.57%</b></td><td><b>92.94%</b></td><td>100%</td><td><b>93.67%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/scale.ts#L129-L130'>129&ndash;130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/scale.ts#L132-L134'>132&ndash;134</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/scale.ts#L148-L149'>148&ndash;149</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/scale.ts#L181-L183'>181&ndash;183</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/scale.ts#L42'>42</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/scaleSkew.ts'>scaleSkew.ts</a></td><td><b>78.79%</b></td><td><b>64.29%</b></td><td>100%</td><td><b>85.71%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/scaleSkew.ts#L27'>27</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/scaleSkew.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/scaleSkew.ts#L31'>31</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/scaleSkew.ts#L33'>33</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/scaleSkew.ts#L35'>35</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/skew.ts'>skew.ts</a></td><td><b>91.03%</b></td><td><b>79.31%</b></td><td>100%</td><td><b>97.67%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/skew.ts#L131-L132'>131&ndash;132</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/skew.ts#L163-L164'>163&ndash;164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/skew.ts#L171'>171</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/skew.ts#L177'>177</a>, <a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/skew.ts#L179'>179</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/controls/util.ts'>util.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/7884b0d528e250ce4e04753f18701c1f399366a2/src/

Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8caf3b8c0..0cd0653d4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,7 @@
 
 ## [next]
 
+- chore(): expose `sendVectorToPlane` [#9479](https://github.com/fabricjs/fabric.js/pull/9479)
 - BREAKING: remove absolute true/false from the api. [#9395](https://github.com/fabricjs/fabric.js/pull/9395)
 - refactor(Canvas): BREAKING deprecate `getPointer`, add new getScenePoint and getViewportPoint methods, removed `restorePointerVpt`, extended mouse events data [#9175](https://github.com/fabricjs/fabric.js/pull/9175)
 - fix(Object): Fix detection of falsy shadows in Object.needsItsOwnCache method [#9469](https://github.com/fabricjs/fabric.js/pull/9469)
diff --git a/jest.extend.ts b/jest.extend.ts
index da4c9d4a5..bbc4151cf 100644
--- a/jest.extend.ts
+++ b/jest.extend.ts
@@ -3,6 +3,7 @@ import { toMatchSnapshot } from 'jest-snapshot';
 import type { CloneDeepWithCustomizer } from 'lodash';
 import { cloneDeepWith } from 'lodash';
 import { FabricObject } from './src/shapes/Object/Object';
+import type { TMat2D } from './src/typedefs';
 
 type ExtendedOptions<T = unknown> =
   | {
@@ -78,6 +79,19 @@ expect.extend({
       hint
     );
   },
+  toEqualRoundedMatrix(actual: TMat2D, expected: TMat2D, precision = 10) {
+    const error = Math.pow(10, -precision);
+    return {
+      message: () => {
+        return `expected ${this.utils.printReceived(
+          actual
+        )} to be rounded to ${this.utils.printExpected(
+          expected.map((x) => Math.round(x / error) * error)
+        )}`;
+      },
+      pass: actual.every((x, i) => Math.abs(x - expected[i]) < error),
+    };
+  },
 });
 
 // // written in official docs but DOESN'T work
@@ -103,6 +117,7 @@ declare global {
         propertiesOrHint?: ObjectOptions | string,
         hint?: string
       ): void;
+      toEqualRoundedMatrix(expected: TMat2D, precision?: number): void;
     }
     interface Matchers<R, T> {
       toMatchSnapshot<U extends { [P in keyof T]: any }>(
@@ -120,6 +135,7 @@ declare global {
         >,
         snapshotName?: string
       ): R;
+      toEqualRoundedMatrix(expected: TMat2D, precision?: number): R;
     }
   }
 }
diff --git a/src/util/index.ts b/src/util/index.ts
index 491bfe200..2309eec07 100644
--- a/src/util/index.ts
+++ b/src/util/index.ts
@@ -74,6 +74,7 @@ export { makeBoundingBoxFromPoints } from './misc/boundingBoxFromPoints';
 export {
   calcPlaneChangeMatrix,
   sendPointToPlane,
+  sendVectorToPlane,
   sendObjectToPlane,
 } from './misc/planeChange';
 export * as string from './lang_string';
diff --git a/src/util/misc/planeChange.spec.ts b/src/util/misc/planeChange.spec.ts
new file mode 100644
index 000000000..fab5c1b1f
--- /dev/null
+++ b/src/util/misc/planeChange.spec.ts
@@ -0,0 +1,100 @@
+import { Point } from '../../Point';
+import { iMatrix } from '../../constants';
+import { Group } from '../../shapes/Group';
+import { FabricObject } from '../../shapes/Object/FabricObject';
+import type { TMat2D } from '../../typedefs';
+import {
+  createRotateMatrix,
+  invertTransform,
+  multiplyTransformMatrices,
+} from './matrix';
+import { applyTransformToObject } from './objectTransforms';
+import {
+  calcPlaneChangeMatrix,
+  sendObjectToPlane,
+  sendPointToPlane,
+  sendVectorToPlane,
+} from './planeChange';
+
+describe('Plane Change', () => {
+  test('calcPlaneChangeMatrix', () => {
+    const m1: TMat2D = [1, 2, 3, 4, 5, 6];
+    const s: TMat2D = [2, 0, 0, 0.5, 0, 0];
+    expect(calcPlaneChangeMatrix()).toEqual(iMatrix);
+    expect(calcPlaneChangeMatrix(undefined, m1)).toEqual(invertTransform(m1));
+    expect(calcPlaneChangeMatrix(iMatrix, m1)).toEqual(invertTransform(m1));
+    expect(calcPlaneChangeMatrix(m1, undefined)).toEqual(m1);
+    expect(calcPlaneChangeMatrix(m1, iMatrix)).toEqual(m1);
+    expect(calcPlaneChangeMatrix(m1, m1)).toEqual(iMatrix);
+    expect(calcPlaneChangeMatrix(m1, s)).toEqual(
+      multiplyTransformMatrices(invertTransform(s), m1)
+    );
+  });
+
+  test('sendPointToPlane', () => {
+    const s: TMat2D = [2, 0, 0, 0.5, 50, 50];
+    const point = new Point(1, 1);
+    expect(sendPointToPlane(point, s)).toEqual({ x: 52, y: 50.5 });
+    expect(sendPointToPlane(point, undefined, s)).toEqual({ x: -24.5, y: -98 });
+    expect(
+      sendPointToPlane(point, createRotateMatrix({ angle: 90 }), s)
+    ).toEqual({ x: -25.5, y: -98 });
+    expect(sendPointToPlane(point, s, s)).toEqual(point);
+    expect(sendPointToPlane(point)).toEqual(point);
+  });
+
+  test('sendVectorToPlane', () => {
+    const s: TMat2D = [2, 0, 0, 0.5, 50, 50];
+    const point = new Point(1, 1);
+    expect(sendVectorToPlane(point, s)).toEqual({ x: 2, y: 0.5 });
+    expect(sendVectorToPlane(point, undefined, s)).toEqual({ x: 0.5, y: 2 });
+    expect(
+      sendVectorToPlane(point, createRotateMatrix({ angle: 90 }), s)
+    ).toEqual({ x: -0.5, y: 2 });
+    expect(sendVectorToPlane(point, s, s)).toEqual(point);
+    expect(sendVectorToPlane(point)).toEqual(point);
+  });
+
+  test('sendObjectToPlane', () => {
+    const m: TMat2D = [6, Math.SQRT1_2, 0, 3, 2, 1];
+    const m1: TMat2D = [3, 0, 0, 2, 10, 4];
+    const m2: TMat2D = [1, Math.SQRT1_2, Math.SQRT1_2, 4, 5, 6];
+    const group = new Group();
+    const group2 = new Group();
+    const obj = new FabricObject();
+
+    jest.spyOn(group, 'isOnACache').mockReturnValue(false);
+
+    applyTransformToObject(obj, m);
+    applyTransformToObject(group, m1);
+    applyTransformToObject(group2, m2);
+
+    obj.group = group;
+    const actual = sendObjectToPlane(
+      obj,
+      group.calcTransformMatrix(),
+      group2.calcTransformMatrix()
+    );
+    expect(actual).toEqualRoundedMatrix(
+      multiplyTransformMatrices(
+        invertTransform(group2.calcTransformMatrix()),
+        group.calcTransformMatrix()
+      )
+    );
+    expect(obj.calcOwnMatrix()).toEqualRoundedMatrix(
+      multiplyTransformMatrices(actual, m)
+    );
+
+    obj.group = group2;
+    expect(obj.calcTransformMatrix()).toEqualRoundedMatrix(
+      multiplyTransformMatrices(
+        multiplyTransformMatrices(group2.calcTransformMatrix(), actual),
+        m
+      )
+    );
+
+    //   sending to nowhere, no transform was applied
+    expect(sendObjectToPlane(group2)).toEqualRoundedMatrix(iMatrix);
+    expect(group2.calcOwnMatrix()).toEqualRoundedMatrix(m2);
+  });
+});
diff --git a/src/util/misc/planeChange.ts b/src/util/misc/planeChange.ts
index c1d2a4d17..a28fc2828 100644
--- a/src/util/misc/planeChange.ts
+++ b/src/util/misc/planeChange.ts
@@ -37,10 +37,16 @@ export const sendPointToPlane = (
   point: Point,
   from: TMat2D = iMatrix,
   to: TMat2D = iMatrix
-): Point =>
-  //  we are actually looking for the transformation from the destination plane to the source plane (which is a linear mapping)
-  //  the object will exist on the destination plane and we want it to seem unchanged by it so we reverse the destination matrix (to) and then apply the source matrix (from)
-  point.transform(calcPlaneChangeMatrix(from, to));
+): Point => point.transform(calcPlaneChangeMatrix(from, to));
+
+/**
+ * See {@link sendPointToPlane}
+ */
+export const sendVectorToPlane = (
+  point: Point,
+  from: TMat2D = iMatrix,
+  to: TMat2D = iMatrix
+): Point => point.transform(calcPlaneChangeMatrix(from, to), true);
 
 /**
  *


Test patch:
diff --git a/test/unit/util.js b/test/unit/util.js
index 62531a4d1..6d9bfc871 100644
--- a/test/unit/util.js
+++ b/test/unit/util.js
@@ -734,127 +734,6 @@
     assert.equal(Math.round(tp.y), 8);
   });
 
-  /**
-   *
-   * @param {*} actual
-   * @param {*} expected
-   * @param {*} [message]
-   * @param {number} [error] floating point precision, defaults to 10
-   */
-  QUnit.assert.matrixIsEqualEnough = function (actual, expected, message, error) {
-    var error = Math.pow(10, error ? -error : -10);
-    this.pushResult({
-      result: actual.every((x, i) => Math.abs(x - expected[i]) < error),
-      actual: actual,
-      expected: expected,
-      message: message
-    })
-  }
-
-  QUnit.test('calcPlaneChangeMatrix', function (assert) {
-    assert.ok(typeof fabric.util.calcPlaneChangeMatrix === 'function');
-    const m1 = [1, 2, 3, 4, 5, 6];
-    const s = [2, 0, 0, 0.5, 0, 0];
-    assert.deepEqual(fabric.util.calcPlaneChangeMatrix(), fabric.iMatrix);
-    assert.deepEqual(fabric.util.calcPlaneChangeMatrix(undefined, m1), fabric.util.invertTransform(m1));
-    assert.deepEqual(fabric.util.calcPlaneChangeMatrix(fabric.iMatrix, m1), fabric.util.invertTransform(m1));
-    assert.deepEqual(fabric.util.calcPlaneChangeMatrix(m1, undefined), m1);
-    assert.deepEqual(fabric.util.calcPlaneChangeMatrix(m1, fabric.iMatrix), m1);
-    assert.deepEqual(fabric.util.calcPlaneChangeMatrix(m1, m1), fabric.iMatrix);
-    assert.deepEqual(fabric.util.calcPlaneChangeMatrix(m1, s), fabric.util.multiplyTransformMatrices(fabric.util.invertTransform(s), m1));
-  })
-
-  QUnit.test('sendPointToPlane', function (assert) {
-    assert.ok(typeof fabric.util.sendPointToPlane === 'function');
-    var m1 = [3, 0, 0, 2, 10, 4],
-      m2 = [1, 2, 3, 4, 5, 6],
-      p, t,
-      obj1 = new fabric.Object(),
-      obj2 = new fabric.Object(),
-      point = new fabric.Point(2, 2),
-      applyTransformToObject = fabric.util.applyTransformToObject,
-      invert = fabric.util.invertTransform,
-      multiply = fabric.util.multiplyTransformMatrices,
-      transformPoint = fabric.util.transformPoint;
-
-    function sendPointToPlane(point, from, to, relationFrom, relationTo) {
-      return fabric.util.sendPointToPlane(
-        point,
-        from ?
-          relationFrom === 'child' ? from.calcTransformMatrix() : from.group?.calcTransformMatrix() :
-          undefined,
-        to ?
-          relationTo === 'child' ? to.calcTransformMatrix() : to.group?.calcTransformMatrix() :
-          undefined
-      );
-    }
-
-    applyTransformToObject(obj1, m1);
-    applyTransformToObject(obj2, m2);
-    obj1.group = new fabric.Object();
-    obj2.group = new fabric.Object();
-    applyTransformToObject(obj1.group, m1);
-    applyTransformToObject(obj2.group, m2);
-    p = sendPointToPlane(point, obj1, obj2, 'child', 'child');
-    t = multiply(invert(obj2.calcTransformMatrix()), obj1.calcTransformMatrix());
-    assert.deepEqual(p, transformPoint(point, t));
-    p = sendPointToPlane(point, obj1, obj2, 'sibling', 'child');
-    t = multiply(invert(obj2.calcTransformMatrix()), obj1.group.calcTransformMatrix());
-    assert.deepEqual(p, transformPoint(point, t));
-    p = sendPointToPlane(point, obj1, obj2, 'child', 'sibling');
-    t = multiply(invert(obj2.group.calcTransformMatrix()), obj1.calcTransformMatrix());
-    assert.deepEqual(p, transformPoint(point, t));
-    p = sendPointToPlane(point, obj1, obj2, 'sibling', 'sibling');
-    t = multiply(invert(obj2.group.calcTransformMatrix()), obj1.group.calcTransformMatrix());
-    assert.deepEqual(p, transformPoint(point, t));
-    p = sendPointToPlane(point, null, obj2, null, 'sibling');
-    t = invert(obj2.group.calcTransformMatrix());
-    assert.deepEqual(p, transformPoint(point, t));
-
-    var obj = new fabric.Rect({ left: 20, top: 20, width: 60, height: 60, strokeWidth: 0 });
-    var group = new fabric.Group([obj], { strokeWidth: 0 });
-    var sentPoint = sendPointToPlane(new fabric.Point(50, 50), null, obj, null, 'sibling');
-    assert.deepEqual(sentPoint, new fabric.Point(0, 0));
-    sentPoint = sendPointToPlane(new fabric.Point(50, 50), null, group, null, 'child');
-    assert.deepEqual(sentPoint, new fabric.Point(0, 0));
-    group.scaleX = 2;
-    sentPoint = sendPointToPlane(new fabric.Point(80, 50), null, obj, null, 'sibling');
-    assert.deepEqual(sentPoint, new fabric.Point(0, 0));
-    sentPoint = sendPointToPlane(new fabric.Point(80, 50), null, group, null, 'child');
-    assert.deepEqual(sentPoint, new fabric.Point(0, 0));
-    assert.deepEqual(sendPointToPlane(point), point, 'sending to nowhere, point remains unchanged');
-  });
-
-  QUnit.test('sendObjectToPlane', function (assert) {
-    assert.ok(typeof fabric.util.sendObjectToPlane === 'function');
-    var m = [6, Math.SQRT1_2, 0, 3, 2, 1],
-      m1 = [3, 0, 0, 2, 10, 4],
-      m2 = [1, Math.SQRT1_2, Math.SQRT1_2, 4, 5, 6],
-      actual, expected,
-      obj1 = new fabric.Object(),
-      obj2 = new fabric.Object(),
-      obj = new fabric.Object(),
-      sendObjectToPlane = fabric.util.sendObjectToPlane,
-      applyTransformToObject = fabric.util.applyTransformToObject,
-      invert = fabric.util.invertTransform,
-      multiply = fabric.util.multiplyTransformMatrices;
-    //  silence group check
-    obj1.isOnACache = () => false;
-
-    applyTransformToObject(obj, m);
-    applyTransformToObject(obj1, m1);
-    applyTransformToObject(obj2, m2);
-    obj.group = obj1;
-    actual = sendObjectToPlane(obj, obj1.calcTransformMatrix(), obj2.calcTransformMatrix());
-    expected = multiply(invert(obj2.calcTransformMatrix()), obj1.calcTransformMatrix());
-    assert.matrixIsEqualEnough(actual, expected);
-    assert.matrixIsEqualEnough(obj.calcOwnMatrix(), multiply(actual, m));
-    obj.group = obj2;
-    assert.matrixIsEqualEnough(obj.calcTransformMatrix(), multiply(multiply(obj2.calcTransformMatrix(), actual), m));
-    assert.deepEqual(sendObjectToPlane(obj2), fabric.iMatrix, 'sending to nowhere, no transform was applied');
-    assert.matrixIsEqualEnough(obj2.calcOwnMatrix(), m2, 'sending to nowhere, no transform was applied');
-  });
-
   QUnit.test('makeBoundingBoxFromPoints', function(assert) {
     assert.ok(typeof fabric.util.makeBoundingBoxFromPoints === 'function');
     assert.deepEqual(fabric.util.makeBoundingBoxFromPoints([