Repository: fabricjs/fabric.js
Pull request #9848 (2024-05-03 13:30:09)

fix(): Adjust flashing rate of editing cursor
Originally opened by @milonic 

This commit adjusts the initial flashing speed of the cursor when editing text.

At the moment, when you click on text being edited, the cursor will only begin flashing after its delay has occurred. By swaping the "toValues" around, this makes the cursor begin to flash more quickly provided better feedback to the user.

After a long discussion in the PR close by mistake #9823:
This PR individuates a bug, that the cursor animation depends on 2 parameters:
- text.cursorDuration
- text.cursorDelay
- a 100 ms delay between ticks that is today not configurable.

The cursorDuration is always respected but cursorDelay was behaving uncorrectly. Whichever delay you set, the firs animation was always waiting for cursorDuration + cursorDelay + 100ms
This because the first animation cycle was always from opacity 1 to opacity 1 and so indistinguishable from a dealy.

By swapping the first cycle animation from opacity 1 to opacity 0 this gets fixed.

There is another bug that will be taken care in another PR and that is that the cursor delay is applied only on keyboard or mouse cursor changes and not consistently between the two

codesandbox[bot]: #### Review or Edit in CodeSandbox

Open the branch in <a href="https://codesandbox.io/p/github/fabricjs/fabric.js/Adjust-flashing-rate-of-editing-cursor?mode=review&utm_source=gh_app">Web Editor</a> &bull; <a href="https://codesandbox.io/p/vscode?owner=fabricjs&repo=fabric.js&branch=Adjust-flashing-rate-of-editing-cursor&utm_source=gh_app">VS Code</a> &bull; <a href="https://codesandbox.io/p/vscode?owner=fabricjs&repo=fabric.js&branch=Adjust-flashing-rate-of-editing-cursor&insiders=true&utm_source=gh_app">Insiders</a><br>
<details>
<summary>Open Preview</summary>
<ul><li><a href="https://codesandbox.io/p/devtool/preview/fabricjs/fabric.js/Adjust-flashing-rate-of-editing-cursor?task=next&port=3000&redirect=true&utm_source=gh_app">Run Next Template</a></li><li><a href="https://codesandbox.io/p/devtool/preview/fabricjs/fabric.js/Adjust-flashing-rate-of-editing-cursor?task=node&port=8080&redirect=true&utm_source=gh_app">Run Node Template</a></li><li><a href="https://codesandbox.io/p/devtool/preview/fabricjs/fabric.js/Adjust-flashing-rate-of-editing-cursor?task=vanilla&port=1234&redirect=true&utm_source=gh_app">Run Vanilla Template</a></li><li><a href="https://codesandbox.io/p/devtool/preview/fabricjs/fabric.js/Adjust-flashing-rate-of-editing-cursor?task=vue&port=5173&redirect=true&utm_source=gh_app">Run Vue Template</a></li></ul>
</details>

<!-- open-in-codesandbox:complete -->

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

 | file / KB (diff) | bundled | minified | 
 | --- | --- | --- | 
 | fabric | 916.384 (**+0.132**) | 305.655 (**+0.007**) | 

github-actions[bot]: Coverage after merging <b>Adjust-flashing-rate-of-editing-cursor</b> into <b>master</b> will be<table><tbody><tr><th>83.85%</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/504f28e10c06baba2a03dbda8190cd3d50d10a30/index.node.ts'>index.node.ts</a></td><td><b>14.29%</b></td><td>100%</td><td><b>0%</b></td><td><b>25%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/index.node.ts#L23'>23</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/index.node.ts#L26'>26</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/index.node.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/index.node.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/index.node.ts#L44'>44</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/index.node.ts#L47'>47</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/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/ClassRegistry.ts'>ClassRegistry.ts</a></td><td><b>90.32%</b></td><td><b>61.54%</b></td><td>100%</td><td><b>97.73%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/ClassRegistry.ts#L31'>31</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/ClassRegistry.ts#L52'>52</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts'>Collection.ts</a></td><td><b>78.47%</b></td><td><b>42.62%</b></td><td><b>87.10%</b></td><td><b>85.82%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L130'>130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L153'>153</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L155-L157'>155&ndash;157</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L159'>159</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L169-L170'>169&ndash;170</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L181'>181</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L197'>197</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L215'>215</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L217'>217</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L228'>228</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L243'>243</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L254'>254</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L265'>265</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L270'>270</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L279'>279</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L281'>281</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L286-L287'>286&ndash;287</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L302'>302</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L304'>304</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L309-L310'>309&ndash;310</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L329'>329</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L333-L334'>333&ndash;334</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L338-L344'>338&ndash;344</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L346-L348'>346&ndash;348</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Collection.ts#L350'>350</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/CommonMethods.ts'>CommonMethods.ts</a></td><td><b>89.86%</b></td><td><b>69.23%</b></td><td>100%</td><td><b>94%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/CommonMethods.ts#L50'>50</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/CommonMethods.ts#L52'>52</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/CommonMethods.ts#L61'>61</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Intersection.ts'>Intersection.ts</a></td><td><b>85.25%</b></td><td><b>48.91%</b></td><td>100%</td><td><b>97.30%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Intersection.ts#L184-L188'>184&ndash;188</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Intersection.ts#L190'>190</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Intersection.ts#L228'>228</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Intersection.ts#L237'>237</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Intersection.ts#L239'>239</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Intersection.ts#L289'>289</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Intersection.ts#L297'>297</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Intersection.ts#L297'>297</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Observable.ts'>Observable.ts</a></td><td><b>79.89%</b></td><td><b>54.55%</b></td><td><b>93.75%</b></td><td><b>87.10%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Observable.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Observable.ts#L145'>145</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Observable.ts#L148'>148</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Observable.ts#L160'>160</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Observable.ts#L162'>162</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Observable.ts#L167'>167</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Observable.ts#L68-L70'>68&ndash;70</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Observable.ts#L72'>72</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Observable.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Observable.ts#L80'>80</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Observable.ts#L84-L85'>84&ndash;85</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Observable.ts#L87-L91'>87&ndash;91</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts'>Point.ts</a></td><td><b>90.27%</b></td><td><b>61.22%</b></td><td>100%</td><td><b>93.60%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L104'>104</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L117'>117</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L148'>148</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L157'>157</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L179'>179</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L197'>197</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L206'>206</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L216'>216</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L225'>225</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L236-L239'>236&ndash;239</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L259'>259</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L285'>285</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L297'>297</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L317'>317</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L328'>328</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L341'>341</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L349'>349</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L359'>359</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Point.ts#L95'>95</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Shadow.ts'>Shadow.ts</a></td><td><b>87.85%</b></td><td><b>78.26%</b></td><td>100%</td><td><b>88.37%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Shadow.ts#L147'>147</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Shadow.ts#L150'>150</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Shadow.ts#L152-L157'>152&ndash;157</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Shadow.ts#L166'>166</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Shadow.ts#L203'>203</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Shadow.ts#L206'>206</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Shadow.ts#L213'>213</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Shadow.ts#L230-L237'>230&ndash;237</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Shadow.ts#L241-L242'>241&ndash;242</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Shadow.ts#L38-L41'>38&ndash;41</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/cache.ts'>cache.ts</a></td><td><b>84.88%</b></td><td><b>45.45%</b></td><td>100%</td><td><b>90.14%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/cache.ts#L57'>57</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/cache.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/cache.ts#L71-L72'>71&ndash;72</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/cache.ts#L74-L77'>74&ndash;77</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/config.ts'>config.ts</a></td><td><b>87.73%</b></td><td><b>55%</b></td><td><b>66.67%</b></td><td><b>94.03%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/config.ts#L132'>132</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/config.ts#L134-L137'>134&ndash;137</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/config.ts#L139'>139</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/config.ts#L142-L143'>142&ndash;143</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/config.ts#L147'>147</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/config.ts#L152'>152</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/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/LayoutManager</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/ActiveSelectionLayoutManager.ts'>ActiveSelectionLayoutManager.ts</a></td><td><b>93.33%</b></td><td><b>76.92%</b></td><td><b>85.71%</b></td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutManager.ts'>LayoutManager.ts</a></td><td><b>90.54%</b></td><td><b>65.06%</b></td><td><b>76.92%</b></td><td><b>99.29%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutManager.ts#L269'>269</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutManager.ts#L333'>333</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutManager.ts#L344'>344</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/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/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/index.ts'>index.ts</a></td><td><b>48.57%</b></td><td><b>37.50%</b></td><td><b>80%</b></td><td><b>66.67%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/index.ts#L1'>1</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/index.ts#L1'>1</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/index.ts#L1-L2'>1&ndash;2</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/index.ts#L2'>2</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/index.ts#L2-L3'>2&ndash;3</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/index.ts#L3'>3</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/index.ts#L3-L4'>3&ndash;4</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/index.ts#L4'>4</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/index.ts#L4-L5'>4&ndash;5</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/index.ts#L5'>5</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/index.ts#L5'>5</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/index.ts#L5-L6'>5&ndash;6</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/types.ts'>types.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td colspan='6'><b>src/LayoutManager/LayoutStrategies</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts'>ClipPathLayout.ts</a></td><td><b>73.08%</b></td><td><b>50%</b></td><td>100%</td><td><b>78.95%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts#L39'>39</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts#L41-L44'>41&ndash;44</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts#L46-L48'>46&ndash;48</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts#L57-L58'>57&ndash;58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts#L66-L69'>66&ndash;69</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutStrategies/FitContentLayout.ts'>FitContentLayout.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/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutStrategies/FixedLayout.ts'>FixedLayout.ts</a></td><td><b>85.71%</b></td><td><b>20%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutStrategies/FixedLayout.ts#L23'>23</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutStrategies/FixedLayout.ts#L23'>23</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts'>LayoutStrategy.ts</a></td><td><b>89.26%</b></td><td><b>59.26%</b></td><td>100%</td><td><b>97.70%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts#L54'>54</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts#L72'>72</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts#L74'>74</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutStrategies/utils.ts'>utils.ts</a></td><td><b>72.58%</b></td><td><b>50%</b></td><td>100%</td><td><b>78.72%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutStrategies/utils.ts#L29-L32'>29&ndash;32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutStrategies/utils.ts#L34-L35'>34&ndash;35</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/LayoutManager/LayoutStrategies/utils.ts#L40-L44'>40&ndash;44</a></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/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Pattern/Pattern.ts'>Pattern.ts</a></td><td><b>70.18%</b></td><td><b>90.91%</b></td><td><b>80%</b></td><td><b>65.95%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Pattern/Pattern.ts#L105-L107'>105&ndash;107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Pattern/Pattern.ts#L114'>114</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Pattern/Pattern.ts#L118-L119'>118&ndash;119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Pattern/Pattern.ts#L119-L122'>119&ndash;122</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Pattern/Pattern.ts#L130-L138'>130&ndash;138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Pattern/Pattern.ts#L140-L141'>140&ndash;141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Pattern/Pattern.ts#L143'>143</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Pattern/Pattern.ts#L153-L164'>153&ndash;164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Pattern/Pattern.ts#L174'>174</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Pattern/Pattern.ts#L176-L181'>176&ndash;181</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Pattern/Pattern.ts#L183-L188'>183&ndash;188</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Pattern/Pattern.ts#L190-L199'>190&ndash;199</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Pattern/Pattern.ts#L204-L205'>204&ndash;205</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Pattern/Pattern.ts#L207-L209'>207&ndash;209</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Pattern/Pattern.ts#L211'>211</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Pattern/Pattern.ts#L33'>33</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/Pattern/Pattern.ts#L37'>37</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/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/BaseBrush.ts'>BaseBrush.ts</a></td><td><b>89.33%</b></td><td><b>91.67%</b></td><td>100%</td><td><b>88.55%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/BaseBrush.ts#L110'>110</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/BaseBrush.ts#L115'>115</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/BaseBrush.ts#L124-L125'>124&ndash;125</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/BaseBrush.ts#L130'>130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/BaseBrush.ts#L135'>135</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/BaseBrush.ts#L143'>143</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/BaseBrush.ts#L146'>146</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/BaseBrush.ts#L155-L160'>155&ndash;160</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/BaseBrush.ts#L99'>99</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/CircleBrush.ts'>CircleBrush.ts</a></td><td><b>52.10%</b></td><td><b>12.50%</b></td><td><b>12.50%</b></td><td><b>58.25%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/CircleBrush.ts#L100-L108'>100&ndash;108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/CircleBrush.ts#L108-L118'>108&ndash;118</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/CircleBrush.ts#L122'>122</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/CircleBrush.ts#L130-L139'>130&ndash;139</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/CircleBrush.ts#L55'>55</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/CircleBrush.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/CircleBrush.ts#L69'>69</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/CircleBrush.ts#L78-L79'>78&ndash;79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/CircleBrush.ts#L79'>79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/CircleBrush.ts#L83'>83</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/CircleBrush.ts#L85-L86'>85&ndash;86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/CircleBrush.ts#L92-L98'>92&ndash;98</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/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/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/PatternBrush.ts#L21'>21</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/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/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/PencilBrush.ts#L122-L123'>122&ndash;123</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/PencilBrush.ts#L152'>152</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/PencilBrush.ts#L152-L154'>152&ndash;154</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/PencilBrush.ts#L276'>276</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/PencilBrush.ts#L280'>280</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/PencilBrush.ts#L285-L286'>285&ndash;286</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/PencilBrush.ts#L68-L69'>68&ndash;69</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/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/504f28e10c06baba2a03dbda8190cd3d50d10a30/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/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L107-L108'>107&ndash;108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L110-L111'>110&ndash;111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L118-L119'>118&ndash;119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L123-L127'>123&ndash;127</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L140-L141'>140&ndash;141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L141'>141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L148'>148</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L148'>148</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L148-L151'>148&ndash;151</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L153-L156'>153&ndash;156</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L160-L161'>160&ndash;161</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L163'>163</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L165-L168'>165&ndash;168</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L171'>171</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L178-L179'>178&ndash;179</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L18'>18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L181'>181</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L183-L184'>183&ndash;184</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L186'>186</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L193-L194'>193&ndash;194</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L196-L197'>196&ndash;197</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L20'>20</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L200'>200</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L200'>200</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L207'>207</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L207'>207</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L21'>21</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L211'>211</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L22-L24'>22&ndash;24</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L28'>28</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L32'>32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L39'>39</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L46'>46</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L53'>53</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L60'>60</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L84-L86'>84&ndash;86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/brushes/SprayBrush.ts#L94-L96'>94&ndash;96</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/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/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts'>Canvas.ts</a></td><td><b>74.70%</b></td><td><b>41%</b></td><td><b>92.86%</b></td><td><b>83.56%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1004'>1004</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1007-L1008'>1007&ndash;1008</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1012-L1013'>1012&ndash;1013</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1018'>1018</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1063-L1068'>1063&ndash;1068</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1105'>1105</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1126'>1126</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1130'>1130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1137'>1137</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1140'>1140</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1203-L1207'>1203&ndash;1207</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1286-L1290'>1286&ndash;1290</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1320'>1320</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1337'>1337</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1383-L1400'>1383&ndash;1400</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1406-L1411'>1406&ndash;1411</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1414-L1415'>1414&ndash;1415</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1417'>1417</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1421'>1421</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1423-L1424'>1423&ndash;1424</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1426-L1428'>1426&ndash;1428</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1432'>1432</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1434'>1434</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1436-L1438'>1436&ndash;1438</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1441-L1446'>1441&ndash;1446</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1449-L1451'>1449&ndash;1451</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1454'>1454</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1456'>1456</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1470'>1470</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1477'>1477</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1479-L1490'>1479&ndash;1490</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1492-L1495'>1492&ndash;1495</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1495'>1495</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1497'>1497</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1501-L1502'>1501&ndash;1502</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1505-L1506'>1505&ndash;1506</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1509-L1511'>1509&ndash;1511</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1514'>1514</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L1522'>1522</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L354'>354</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L369'>369</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L388'>388</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L443'>443</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L559-L563'>559&ndash;563</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L566-L567'>566&ndash;567</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L569'>569</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L579'>579</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L582-L583'>582&ndash;583</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L585'>585</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L588-L590'>588&ndash;590</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L602'>602</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L609-L613'>609&ndash;613</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L615-L620'>615&ndash;620</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L622-L626'>622&ndash;626</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L659'>659</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L661'>661</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L668-L672'>668&ndash;672</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L674-L679'>674&ndash;679</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L681'>681</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L683-L684'>683&ndash;684</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L686-L689'>686&ndash;689</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L691-L692'>691&ndash;692</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L747'>747</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L783-L786'>783&ndash;786</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L789'>789</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L791'>791</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L794'>794</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L796'>796</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L824'>824</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L833'>833</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L843'>843</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L845'>845</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L847-L851'>847&ndash;851</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L854-L861'>854&ndash;861</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L887'>887</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L932-L933'>932&ndash;933</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L936'>936</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L938'>938</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L947-L953'>947&ndash;953</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L956'>956</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L963-L964'>963&ndash;964</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L966-L970'>966&ndash;970</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L972'>972</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L974'>974</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L995-L996'>995&ndash;996</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/Canvas.ts#L999'>999</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/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/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts'>SelectableCanvas.ts</a></td><td><b>85.49%</b></td><td><b>53.85%</b></td><td>100%</td><td><b>94.43%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1012'>1012</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1021'>1021</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1089-L1093'>1089&ndash;1093</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1139-L1140'>1139&ndash;1140</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1142-L1143'>1142&ndash;1143</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1145'>1145</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1172'>1172</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1174-L1175'>1174&ndash;1175</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1175'>1175</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1177'>1177</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1216'>1216</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1218'>1218</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1220'>1220</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1236'>1236</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1238'>1238</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1266'>1266</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1269'>1269</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1288'>1288</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1290'>1290</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1294'>1294</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1312-L1319'>1312&ndash;1319</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1322'>1322</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1325'>1325</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1334-L1335'>1334&ndash;1335</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1339-L1348'>1339&ndash;1348</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1352'>1352</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1354-L1355'>1354&ndash;1355</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1361-L1366'>1361&ndash;1366</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L1370'>1370</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L362'>362</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L384'>384</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L462'>462</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L513'>513</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L515'>515</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L591'>591</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L596'>596</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L673'>673</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L701'>701</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L992'>992</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/SelectableCanvas.ts#L994-L995'>994&ndash;995</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts'>StaticCanvas.ts</a></td><td><b>75.93%</b></td><td><b>70.11%</b></td><td><b>98.91%</b></td><td><b>75.43%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1003'>1003</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1009'>1009</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1012'>1012</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1014'>1014</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1016'>1016</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1024'>1024</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1026-L1032'>1026&ndash;1032</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1042'>1042</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1045'>1045</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1048-L1054'>1048&ndash;1054</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1056-L1057'>1056&ndash;1057</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1059-L1080'>1059&ndash;1080</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1087-L1089'>1087&ndash;1089</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1091'>1091</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1099'>1099</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1105'>1105</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1107'>1107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1107-L1108'>1107&ndash;1108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1108-L1109'>1108&ndash;1109</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1111'>1111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1111-L1116'>1111&ndash;1116</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1129'>1129</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1134-L1136'>1134&ndash;1136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1140'>1140</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1144'>1144</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1146'>1146</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1148'>1148</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1153-L1157'>1153&ndash;1157</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1159'>1159</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1161-L1164'>1161&ndash;1164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1167'>1167</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1169'>1169</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1178'>1178</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1180-L1181'>1180&ndash;1181</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1188-L1191'>1188&ndash;1191</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1193'>1193</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1199-L1202'>1199&ndash;1202</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1206-L1207'>1206&ndash;1207</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1217'>1217</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1223-L1225'>1223&ndash;1225</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1227-L1232'>1227&ndash;1232</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1232'>1232</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1232-L1236'>1232&ndash;1236</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1236'>1236</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1236-L1241'>1236&ndash;1241</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1243-L1250'>1243&ndash;1250</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1279-L1280'>1279&ndash;1280</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1282-L1283'>1282&ndash;1283</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1285-L1287'>1285&ndash;1287</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1289-L1295'>1289&ndash;1295</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1299'>1299</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1301-L1314'>1301&ndash;1314</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1322-L1323'>1322&ndash;1323</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1333'>1333</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1344'>1344</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1385-L1389'>1385&ndash;1389</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1391'>1391</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1393'>1393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1395-L1399'>1395&ndash;1399</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1418'>1418</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1433'>1433</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1448'>1448</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1468'>1468</a>, <a href='https://github.com/fabricjs/fabric.js/blob/504f28e10c06baba2a03dbda8190cd3d50d10a30/src/canvas/StaticCanvas.ts#L1501'>1501</a>, <a href='https://github.com/fabr
asturur: i should add another test to show the animation is properly configurable, i ll do later today.
asturur: @milonic this is complete imho
github-actions[bot]: Coverage after merging <b>Adjust-flashing-rate-of-editing-cursor</b> into <b>master</b> will be<table><tbody><tr><th>83.79%</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/19e813f7834c2259f47144794b1155b8ac16b106/index.node.ts'>index.node.ts</a></td><td><b>14.29%</b></td><td>100%</td><td><b>0%</b></td><td><b>25%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/index.node.ts#L23'>23</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/index.node.ts#L26'>26</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/index.node.ts#L29'>29</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/index.node.ts#L41'>41</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/index.node.ts#L44'>44</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/index.node.ts#L47'>47</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/19e813f7834c2259f47144794b1155b8ac16b106/src/ClassRegistry.ts'>ClassRegistry.ts</a></td><td><b>90.32%</b></td><td><b>61.54%</b></td><td>100%</td><td><b>97.73%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/ClassRegistry.ts#L31'>31</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/ClassRegistry.ts#L52'>52</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts'>Collection.ts</a></td><td><b>78.47%</b></td><td><b>42.62%</b></td><td><b>87.10%</b></td><td><b>85.82%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L130'>130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L138'>138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L153'>153</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L155-L157'>155&ndash;157</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L159'>159</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L169-L170'>169&ndash;170</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L181'>181</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L197'>197</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L215'>215</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L217'>217</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L228'>228</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L243'>243</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L254'>254</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L265'>265</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L270'>270</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L279'>279</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L281'>281</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L286-L287'>286&ndash;287</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L302'>302</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L304'>304</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L309-L310'>309&ndash;310</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L329'>329</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L333-L334'>333&ndash;334</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L338-L344'>338&ndash;344</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L346-L348'>346&ndash;348</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Collection.ts#L350'>350</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/CommonMethods.ts'>CommonMethods.ts</a></td><td><b>89.86%</b></td><td><b>69.23%</b></td><td>100%</td><td><b>94%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/CommonMethods.ts#L50'>50</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/CommonMethods.ts#L52'>52</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/CommonMethods.ts#L61'>61</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Intersection.ts'>Intersection.ts</a></td><td><b>85.25%</b></td><td><b>48.91%</b></td><td>100%</td><td><b>97.30%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Intersection.ts#L184-L188'>184&ndash;188</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Intersection.ts#L190'>190</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Intersection.ts#L228'>228</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Intersection.ts#L237'>237</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Intersection.ts#L239'>239</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Intersection.ts#L289'>289</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Intersection.ts#L297'>297</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Intersection.ts#L297'>297</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Observable.ts'>Observable.ts</a></td><td><b>79.89%</b></td><td><b>54.55%</b></td><td><b>93.75%</b></td><td><b>87.10%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Observable.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Observable.ts#L145'>145</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Observable.ts#L148'>148</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Observable.ts#L160'>160</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Observable.ts#L162'>162</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Observable.ts#L167'>167</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Observable.ts#L68-L70'>68&ndash;70</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Observable.ts#L72'>72</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Observable.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Observable.ts#L80'>80</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Observable.ts#L84-L85'>84&ndash;85</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Observable.ts#L87-L91'>87&ndash;91</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts'>Point.ts</a></td><td><b>90.27%</b></td><td><b>61.22%</b></td><td>100%</td><td><b>93.60%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L104'>104</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L117'>117</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L148'>148</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L157'>157</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L179'>179</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L197'>197</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L206'>206</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L216'>216</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L225'>225</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L236-L239'>236&ndash;239</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L259'>259</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L285'>285</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L297'>297</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L317'>317</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L328'>328</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L341'>341</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L349'>349</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L359'>359</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Point.ts#L95'>95</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Shadow.ts'>Shadow.ts</a></td><td><b>87.45%</b></td><td><b>73.91%</b></td><td>100%</td><td><b>88.37%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Shadow.ts#L147'>147</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Shadow.ts#L150'>150</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Shadow.ts#L152-L157'>152&ndash;157</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Shadow.ts#L166'>166</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Shadow.ts#L203'>203</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Shadow.ts#L206'>206</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Shadow.ts#L213'>213</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Shadow.ts#L230-L237'>230&ndash;237</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Shadow.ts#L241-L242'>241&ndash;242</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Shadow.ts#L38-L41'>38&ndash;41</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/cache.ts'>cache.ts</a></td><td><b>84.88%</b></td><td><b>45.45%</b></td><td>100%</td><td><b>90.14%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/cache.ts#L57'>57</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/cache.ts#L59'>59</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/cache.ts#L71-L72'>71&ndash;72</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/cache.ts#L74-L77'>74&ndash;77</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/config.ts'>config.ts</a></td><td><b>87.73%</b></td><td><b>55%</b></td><td><b>66.67%</b></td><td><b>94.03%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/config.ts#L132'>132</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/config.ts#L134-L137'>134&ndash;137</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/config.ts#L139'>139</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/config.ts#L142-L143'>142&ndash;143</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/config.ts#L147'>147</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/config.ts#L152'>152</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/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/LayoutManager</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/ActiveSelectionLayoutManager.ts'>ActiveSelectionLayoutManager.ts</a></td><td><b>93.33%</b></td><td><b>76.92%</b></td><td><b>85.71%</b></td><td>100%</td><td></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutManager.ts'>LayoutManager.ts</a></td><td><b>90.54%</b></td><td><b>65.06%</b></td><td><b>76.92%</b></td><td><b>99.29%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutManager.ts#L269'>269</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutManager.ts#L333'>333</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutManager.ts#L344'>344</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/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/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/index.ts'>index.ts</a></td><td><b>48.57%</b></td><td><b>37.50%</b></td><td><b>80%</b></td><td><b>66.67%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/index.ts#L1'>1</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/index.ts#L1'>1</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/index.ts#L1-L2'>1&ndash;2</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/index.ts#L2'>2</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/index.ts#L2-L3'>2&ndash;3</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/index.ts#L3'>3</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/index.ts#L3-L4'>3&ndash;4</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/index.ts#L4'>4</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/index.ts#L4-L5'>4&ndash;5</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/index.ts#L5'>5</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/index.ts#L5'>5</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/index.ts#L5-L6'>5&ndash;6</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/types.ts'>types.ts</a></td><td>100%</td><td>100%</td><td>100%</td><td>100%</td><td></td></tr><tr><td colspan='6'><b>src/LayoutManager/LayoutStrategies</b></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts'>ClipPathLayout.ts</a></td><td><b>73.08%</b></td><td><b>50%</b></td><td>100%</td><td><b>78.95%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts#L39'>39</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts#L41-L44'>41&ndash;44</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts#L46-L48'>46&ndash;48</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts#L57-L58'>57&ndash;58</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutStrategies/ClipPathLayout.ts#L66-L69'>66&ndash;69</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutStrategies/FitContentLayout.ts'>FitContentLayout.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/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutStrategies/FixedLayout.ts'>FixedLayout.ts</a></td><td><b>85.71%</b></td><td><b>20%</b></td><td>100%</td><td>100%</td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutStrategies/FixedLayout.ts#L23'>23</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutStrategies/FixedLayout.ts#L23'>23</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts'>LayoutStrategy.ts</a></td><td><b>89.26%</b></td><td><b>59.26%</b></td><td>100%</td><td><b>97.70%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts#L54'>54</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts#L72'>72</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutStrategies/LayoutStrategy.ts#L74'>74</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutStrategies/utils.ts'>utils.ts</a></td><td><b>72.58%</b></td><td><b>50%</b></td><td>100%</td><td><b>78.72%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutStrategies/utils.ts#L29-L32'>29&ndash;32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutStrategies/utils.ts#L34-L35'>34&ndash;35</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/LayoutManager/LayoutStrategies/utils.ts#L40-L44'>40&ndash;44</a></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/19e813f7834c2259f47144794b1155b8ac16b106/src/Pattern/Pattern.ts'>Pattern.ts</a></td><td><b>70.18%</b></td><td><b>90.91%</b></td><td><b>80%</b></td><td><b>65.95%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Pattern/Pattern.ts#L105-L107'>105&ndash;107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Pattern/Pattern.ts#L114'>114</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Pattern/Pattern.ts#L118-L119'>118&ndash;119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Pattern/Pattern.ts#L119-L122'>119&ndash;122</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Pattern/Pattern.ts#L130-L138'>130&ndash;138</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Pattern/Pattern.ts#L140-L141'>140&ndash;141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Pattern/Pattern.ts#L143'>143</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Pattern/Pattern.ts#L153-L164'>153&ndash;164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Pattern/Pattern.ts#L174'>174</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Pattern/Pattern.ts#L176-L181'>176&ndash;181</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Pattern/Pattern.ts#L183-L188'>183&ndash;188</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Pattern/Pattern.ts#L190-L199'>190&ndash;199</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Pattern/Pattern.ts#L204-L205'>204&ndash;205</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Pattern/Pattern.ts#L207-L209'>207&ndash;209</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Pattern/Pattern.ts#L211'>211</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Pattern/Pattern.ts#L33'>33</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/Pattern/Pattern.ts#L37'>37</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/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/BaseBrush.ts'>BaseBrush.ts</a></td><td><b>89.33%</b></td><td><b>91.67%</b></td><td>100%</td><td><b>88.55%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/BaseBrush.ts#L110'>110</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/BaseBrush.ts#L115'>115</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/BaseBrush.ts#L124-L125'>124&ndash;125</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/BaseBrush.ts#L130'>130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/BaseBrush.ts#L135'>135</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/BaseBrush.ts#L143'>143</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/BaseBrush.ts#L146'>146</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/BaseBrush.ts#L155-L160'>155&ndash;160</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/BaseBrush.ts#L99'>99</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/CircleBrush.ts'>CircleBrush.ts</a></td><td><b>52.10%</b></td><td><b>12.50%</b></td><td><b>12.50%</b></td><td><b>58.25%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/CircleBrush.ts#L100-L108'>100&ndash;108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/CircleBrush.ts#L108-L118'>108&ndash;118</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/CircleBrush.ts#L122'>122</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/CircleBrush.ts#L130-L139'>130&ndash;139</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/CircleBrush.ts#L55'>55</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/CircleBrush.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/CircleBrush.ts#L69'>69</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/CircleBrush.ts#L76'>76</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/CircleBrush.ts#L78-L79'>78&ndash;79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/CircleBrush.ts#L79'>79</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/CircleBrush.ts#L83'>83</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/CircleBrush.ts#L85-L86'>85&ndash;86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/CircleBrush.ts#L92-L98'>92&ndash;98</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/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/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/PatternBrush.ts#L21'>21</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/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/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/PencilBrush.ts#L122-L123'>122&ndash;123</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/PencilBrush.ts#L152'>152</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/PencilBrush.ts#L152-L154'>152&ndash;154</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/PencilBrush.ts#L176'>176</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/PencilBrush.ts#L276'>276</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/PencilBrush.ts#L280'>280</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/PencilBrush.ts#L285-L286'>285&ndash;286</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/PencilBrush.ts#L68-L69'>68&ndash;69</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/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/19e813f7834c2259f47144794b1155b8ac16b106/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/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L107'>107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L107-L108'>107&ndash;108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L110-L111'>110&ndash;111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L118-L119'>118&ndash;119</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L121'>121</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L123-L127'>123&ndash;127</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L136'>136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L140-L141'>140&ndash;141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L141'>141</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L148'>148</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L148'>148</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L148-L151'>148&ndash;151</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L153-L156'>153&ndash;156</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L160-L161'>160&ndash;161</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L163'>163</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L165-L168'>165&ndash;168</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L17'>17</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L171'>171</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L178-L179'>178&ndash;179</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L18'>18</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L181'>181</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L183-L184'>183&ndash;184</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L186'>186</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L193-L194'>193&ndash;194</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L196-L197'>196&ndash;197</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L20'>20</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L200'>200</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L200'>200</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L207'>207</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L207'>207</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L21'>21</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L211'>211</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L22'>22</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L22-L24'>22&ndash;24</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L28'>28</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L32'>32</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L39'>39</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L46'>46</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L53'>53</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L60'>60</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L67'>67</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L84-L86'>84&ndash;86</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/brushes/SprayBrush.ts#L94-L96'>94&ndash;96</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/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/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts'>Canvas.ts</a></td><td><b>76.02%</b></td><td><b>40.24%</b></td><td><b>92.86%</b></td><td><b>85.52%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1004'>1004</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1007-L1008'>1007&ndash;1008</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1012-L1013'>1012&ndash;1013</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1018'>1018</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1126'>1126</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1130'>1130</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1137'>1137</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1140'>1140</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1203-L1207'>1203&ndash;1207</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1286-L1290'>1286&ndash;1290</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1320'>1320</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1337'>1337</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1383-L1400'>1383&ndash;1400</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1406-L1411'>1406&ndash;1411</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1414-L1415'>1414&ndash;1415</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1417'>1417</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1421'>1421</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1423-L1424'>1423&ndash;1424</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1426-L1428'>1426&ndash;1428</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1432'>1432</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1434'>1434</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1436-L1438'>1436&ndash;1438</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1441-L1446'>1441&ndash;1446</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1449-L1451'>1449&ndash;1451</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1454'>1454</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1456'>1456</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1470'>1470</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1477'>1477</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1479-L1490'>1479&ndash;1490</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1492-L1495'>1492&ndash;1495</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1495'>1495</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1497'>1497</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1501-L1502'>1501&ndash;1502</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1505-L1506'>1505&ndash;1506</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1509-L1511'>1509&ndash;1511</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1514'>1514</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L1522'>1522</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L354'>354</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L369'>369</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L388'>388</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L443'>443</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L559-L563'>559&ndash;563</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L566-L567'>566&ndash;567</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L569'>569</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L579'>579</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L582-L583'>582&ndash;583</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L585'>585</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L588-L590'>588&ndash;590</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L602'>602</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L609-L613'>609&ndash;613</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L615-L620'>615&ndash;620</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L622-L626'>622&ndash;626</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L659'>659</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L661'>661</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L668-L672'>668&ndash;672</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L674-L679'>674&ndash;679</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L681'>681</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L683-L684'>683&ndash;684</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L686-L689'>686&ndash;689</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L691-L692'>691&ndash;692</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L747'>747</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L783-L786'>783&ndash;786</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L789'>789</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L791'>791</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L794'>794</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L796'>796</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L798'>798</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L824'>824</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L886-L887'>886&ndash;887</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L932-L933'>932&ndash;933</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L935-L936'>935&ndash;936</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L938'>938</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L947-L953'>947&ndash;953</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L956'>956</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L963-L964'>963&ndash;964</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L966-L970'>966&ndash;970</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L972'>972</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L974'>974</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L995-L996'>995&ndash;996</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Canvas.ts#L999'>999</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/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/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts'>SelectableCanvas.ts</a></td><td><b>85.51%</b></td><td><b>54.13%</b></td><td>100%</td><td><b>94.43%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1012'>1012</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1021'>1021</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1089-L1093'>1089&ndash;1093</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1139-L1140'>1139&ndash;1140</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1142-L1143'>1142&ndash;1143</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1145'>1145</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1172'>1172</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1174-L1175'>1174&ndash;1175</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1175'>1175</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1177'>1177</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1216'>1216</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1218'>1218</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1220'>1220</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1236'>1236</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1238'>1238</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1266'>1266</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1269'>1269</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1288'>1288</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1290'>1290</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1294'>1294</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1312-L1319'>1312&ndash;1319</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1322'>1322</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1325'>1325</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1334-L1335'>1334&ndash;1335</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1339-L1348'>1339&ndash;1348</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1352'>1352</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1354-L1355'>1354&ndash;1355</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1361-L1366'>1361&ndash;1366</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L1370'>1370</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L362'>362</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L384'>384</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L462'>462</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L513'>513</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L515'>515</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L591'>591</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L596'>596</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L673'>673</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L701'>701</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L992'>992</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/SelectableCanvas.ts#L994-L995'>994&ndash;995</a></td></tr><tr><td>&nbsp; &nbsp;<a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts'>StaticCanvas.ts</a></td><td><b>75.93%</b></td><td><b>70.11%</b></td><td><b>98.91%</b></td><td><b>75.43%</b></td><td><a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1003'>1003</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1009'>1009</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1012'>1012</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1014'>1014</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1016'>1016</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1024'>1024</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1026-L1032'>1026&ndash;1032</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1042'>1042</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1045'>1045</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1048-L1054'>1048&ndash;1054</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1056-L1057'>1056&ndash;1057</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1059-L1080'>1059&ndash;1080</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1087-L1089'>1087&ndash;1089</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1091'>1091</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1099'>1099</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1105'>1105</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1107'>1107</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1107-L1108'>1107&ndash;1108</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1108-L1109'>1108&ndash;1109</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1111'>1111</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1111-L1116'>1111&ndash;1116</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1129'>1129</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1134-L1136'>1134&ndash;1136</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1140'>1140</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1144'>1144</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1146'>1146</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1148'>1148</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1153-L1157'>1153&ndash;1157</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1159'>1159</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1161-L1164'>1161&ndash;1164</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1167'>1167</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1169'>1169</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1178'>1178</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1180-L1181'>1180&ndash;1181</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1188-L1191'>1188&ndash;1191</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1193'>1193</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1199-L1202'>1199&ndash;1202</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1206-L1207'>1206&ndash;1207</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1217'>1217</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1223-L1225'>1223&ndash;1225</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1227-L1232'>1227&ndash;1232</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1232'>1232</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1232-L1236'>1232&ndash;1236</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1236'>1236</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1236-L1241'>1236&ndash;1241</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1243-L1250'>1243&ndash;1250</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1279-L1280'>1279&ndash;1280</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1282-L1283'>1282&ndash;1283</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1285-L1287'>1285&ndash;1287</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1289-L1295'>1289&ndash;1295</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1299'>1299</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1301-L1314'>1301&ndash;1314</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1322-L1323'>1322&ndash;1323</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1333'>1333</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1344'>1344</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1385-L1389'>1385&ndash;1389</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1391'>1391</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1393'>1393</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1395-L1399'>1395&ndash;1399</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1418'>1418</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1433'>1433</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1448'>1448</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1468'>1468</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1501'>1501</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1505'>1505</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L1516-L1518'>1516&ndash;1518</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L428'>428</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L439'>439</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L447-L452'>447&ndash;452</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/StaticCanvas.ts#L460'>460</a>, <a href='https://github.com/fabricjs/fabric.js/blob/19e813f7834c2259f47144794b1155b8ac16b106/src/canvas/Sta

Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index acd6d46f4..499011a1e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,8 @@
 
 ## [next]
 
+- feat(IText): Adjust cursor blinking for better feedback [#9823](https://github.com/fabricjs/fabric.js/pull/9823)
+- feat(FabricObject): pass `e` to `shouldStartDragging` [#9843](https://github.com/fabricjs/fabric.js/pull/9843)
 - fix(Canvas): mouse move before event data [#9849](https://github.com/fabricjs/fabric.js/pull/9849)
 - chore(FabricObject): pass `e` to `shouldStartDragging` [#9843](https://github.com/fabricjs/fabric.js/pull/9843)
 - ci(): Add Jest coverage to the report [#9836](https://github.com/fabricjs/fabric.js/pull/9836)
diff --git a/src/shapes/IText/ITextBehavior.ts b/src/shapes/IText/ITextBehavior.ts
index 9514391ed..8bfef78f9 100644
--- a/src/shapes/IText/ITextBehavior.ts
+++ b/src/shapes/IText/ITextBehavior.ts
@@ -145,21 +145,26 @@ export abstract class ITextBehavior<
     });
   }
 
+  /**
+   * changes the cursor from visible to invisible
+   */
   private _tick(delay?: number) {
     this._currentTickState = this._animateCursor({
-      toValue: 1,
-      duration: this.cursorDuration,
-      delay,
+      toValue: 0,
+      duration: this.cursorDuration / 2,
+      delay: Math.max(delay || 0, 100),
       onComplete: this._onTickComplete,
     });
   }
 
+  /**
+   * Changes the cursor from invisible to visible
+   */
   private _onTickComplete() {
     this._currentTickCompleteState?.abort();
     this._currentTickCompleteState = this._animateCursor({
-      toValue: 0,
-      duration: this.cursorDuration / 2,
-      delay: 100,
+      toValue: 1,
+      duration: this.cursorDuration,
       onComplete: this._tick,
     });
   }


Test patch:
diff --git a/src/shapes/IText/ITextBehavior.test.ts b/src/shapes/IText/ITextBehavior.test.ts
index 85f6c563d..ab44fc2a8 100644
--- a/src/shapes/IText/ITextBehavior.test.ts
+++ b/src/shapes/IText/ITextBehavior.test.ts
@@ -147,6 +147,24 @@ describe('IText cursor animation snapshot', () => {
     expect(currentAnimation).toMatchSnapshot();
     iText.abortCursorAnimation();
   });
+  test('Animation is configurable - fast cursor with delay', () => {
+    const iText = new IText('', { canvas: {} });
+    iText.cursorDelay = 200;
+    iText.cursorDuration = 80;
+    iText.initDelayedCursor();
+    jest.advanceTimersByTime(1000);
+    expect(currentAnimation).toMatchSnapshot();
+    iText.abortCursorAnimation();
+  });
+  test('Animation is configurable - fast cursor with no delay', () => {
+    const iText = new IText('', { canvas: {} });
+    iText.cursorDelay = 200;
+    iText.cursorDuration = 80;
+    iText.initDelayedCursor(true);
+    jest.advanceTimersByTime(1000);
+    expect(currentAnimation).toMatchSnapshot();
+    iText.abortCursorAnimation();
+  });
 });
 
 describe('IText _tick', () => {
diff --git a/src/shapes/IText/__snapshots__/ITextBehavior.test.ts.snap b/src/shapes/IText/__snapshots__/ITextBehavior.test.ts.snap
index f9afb8bbc..851faeae6 100644
--- a/src/shapes/IText/__snapshots__/ITextBehavior.test.ts.snap
+++ b/src/shapes/IText/__snapshots__/ITextBehavior.test.ts.snap
@@ -1,64 +1,113 @@
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
-exports[`IText cursor animation snapshot exiting from a canvas will abort animation 1`] = `
+exports[`IText cursor animation snapshot Animation is configurable - fast cursor with delay 1`] = `
 [
+  "0.000",
   "1.000",
+  "0.809",
+  "0.309",
+  "0.000",
   "1.000",
+  "0.000",
+  "0.049",
+  "0.191",
+  "0.412",
+  "0.691",
   "1.000",
+  "0.000",
   "1.000",
+  "0.809",
+  "0.309",
+  "0.000",
   "1.000",
+  "0.000",
+  "0.049",
+  "0.191",
+  "0.412",
+  "0.691",
   "1.000",
+  "0.000",
   "1.000",
+  "0.809",
+  "0.309",
+  "0.000",
   "1.000",
+  "0.000",
+  "0.049",
+  "0.191",
+  "0.412",
+  "0.691",
   "1.000",
+  "0.000",
   "1.000",
-  "1.000",
-  "1.000",
+  "0.809",
 ]
 `;
 
-exports[`IText cursor animation snapshot initDelayedCursor false - with delay 1`] = `
+exports[`IText cursor animation snapshot Animation is configurable - fast cursor with no delay 1`] = `
 [
+  "0.000",
   "1.000",
+  "0.809",
+  "0.309",
+  "0.000",
   "1.000",
+  "0.000",
+  "0.049",
+  "0.191",
+  "0.412",
+  "0.691",
   "1.000",
+  "0.000",
   "1.000",
+  "0.809",
+  "0.309",
+  "0.000",
   "1.000",
+  "0.000",
+  "0.049",
+  "0.191",
+  "0.412",
+  "0.691",
   "1.000",
+  "0.000",
   "1.000",
+  "0.809",
+  "0.309",
+  "0.000",
   "1.000",
+  "0.000",
+  "0.049",
+  "0.191",
+  "0.412",
+  "0.691",
   "1.000",
+  "0.000",
   "1.000",
+  "0.809",
+  "0.309",
+  "0.000",
   "1.000",
+  "0.000",
+  "0.049",
+  "0.191",
+  "0.412",
+]
+`;
+
+exports[`IText cursor animation snapshot exiting from a canvas will abort animation 1`] = `
+[
+  "0.000",
   "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
+  "0.996",
+  "0.986",
+  "0.969",
+  "0.944",
+]
+`;
+
+exports[`IText cursor animation snapshot initDelayedCursor false - with delay 1`] = `
+[
   "0.000",
   "1.000",
   "0.996",
@@ -78,51 +127,54 @@ exports[`IText cursor animation snapshot initDelayedCursor false - with delay 1`
   "0.309",
   "0.228",
   "0.146",
+  "0.063",
+  "0.000",
+  "1.000",
+  "0.000",
+  "0.001",
+  "0.004",
+  "0.008",
+  "0.014",
+  "0.022",
+  "0.031",
+  "0.043",
+  "0.056",
+  "0.070",
+  "0.086",
+  "0.104",
+  "0.124",
+  "0.145",
+  "0.167",
+  "0.191",
+  "0.216",
+  "0.243",
+  "0.271",
+  "0.300",
+  "0.331",
+  "0.363",
+  "0.395",
+  "0.429",
+  "0.464",
+  "0.500",
+  "0.537",
+  "0.574",
+  "0.612",
+  "0.651",
+  "0.691",
+  "0.731",
+  "0.772",
+  "0.813",
+  "0.854",
+  "0.895",
+  "0.937",
+  "0.979",
+  "1.000",
+  "0.000",
 ]
 `;
 
 exports[`IText cursor animation snapshot initDelayedCursor true - with NO delay 1`] = `
 [
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
   "0.000",
   "1.000",
   "0.996",
@@ -200,23 +252,57 @@ exports[`IText cursor animation snapshot initDelayedCursor true - with NO delay
   "0.536",
   "0.463",
   "0.388",
+  "0.309",
+  "0.228",
+  "0.146",
+  "0.063",
+  "0.000",
+  "1.000",
+  "0.000",
+  "0.001",
+  "0.004",
+  "0.008",
+  "0.014",
+  "0.022",
+  "0.031",
+  "0.043",
+  "0.056",
+  "0.070",
+  "0.086",
+  "0.104",
+  "0.124",
+  "0.145",
+  "0.167",
+  "0.191",
+  "0.216",
+  "0.243",
+  "0.271",
+  "0.300",
+  "0.331",
+  "0.363",
+  "0.395",
+  "0.429",
+  "0.464",
+  "0.500",
+  "0.537",
+  "0.574",
+  "0.612",
+  "0.651",
+  "0.691",
+  "0.731",
+  "0.772",
+  "0.813",
 ]
 `;
 
 exports[`IText cursor animation snapshot selectionStart/selection end will abort animation 1`] = `
 [
+  "0.000",
   "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
-  "1.000",
+  "0.996",
+  "0.986",
+  "0.969",
+  "0.944",
 ]
 `;