Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(TS): Collection #8433

Merged
merged 23 commits into from
Nov 20, 2022
Merged

chore(TS): Collection #8433

merged 23 commits into from
Nov 20, 2022

Conversation

ShaMan123
Copy link
Contributor

@ShaMan123 ShaMan123 commented Nov 9, 2022

Motivation

Description

Changes

  • BREAKING insertAt signature - (objects, index) => (index, ...objects). Done to comply with the rest of the methods and resemblance to Array.splice
  • BREAKING removed fabric.Collection, but I can put it back

Gist

Moved all methods using super call to a temporary super class of Group/Canvas.
Once both are migrated the super class won't be necessary

In Action

@github-actions
Copy link
Contributor

github-actions bot commented Nov 9, 2022

Build Stats

file / KB (diff) bundled minified
fabric 1072.744 (-3.572) 314.515 (-1.051)

@github-actions
Copy link
Contributor

github-actions bot commented Nov 13, 2022

Coverage after merging ts-collection into master will be

82.31%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
HEADER.js54%48.15%0%63.64%12, 14, 14, 14, 14, 14, 16–17, 21, 21–22, 22, 22, 24, 24, 26, 28, 30–31, 77, 77, 77
src
   cache.ts97.06%90%100%100%57
   canvas.class.ts93.36%90.22%94.12%95.54%1045, 1045–1046, 1049, 1069, 1069, 1104, 1137–1138, 1166–1167, 1200, 1208, 1318–1319, 1321–1322, 1342–1343, 1501, 1506, 1516, 1520, 472–473, 478, 487, 636–638, 683–684, 733–734, 737, 739, 782–784, 826, 831–832, 860–861
   config.ts77.27%66.67%66.67%84.62%130, 138–140, 151–153
   constants.ts100%100%100%100%
   intersection.class.ts100%100%100%100%
   pattern.class.ts92.19%85.71%100%96.30%110, 116, 127, 136, 88
   point.class.ts100%100%100%100%
   shadow.class.ts95.95%90%100%100%173, 240, 9
   static_canvas.class.ts90.15%83.90%96.70%92.73%1112–1113, 1113, 1113–1114, 1248, 1314–1315, 1318, 1367–1368, 1461, 1476, 1480, 1506–1507, 1536–1537, 1570–1571, 1612–1613, 1616, 1618, 1618, 1618, 1618, 1622, 1622, 1622–1624, 1646–1647, 1688–1689, 1692, 1694, 1694, 1694, 1694, 1698, 1698, 1698–1700, 1771, 1771–1772, 1830, 1832, 1832, 1832, 1832, 1832–1833, 1836–1837, 1837, 1837–1838, 1841, 1841, 1841, 1843, 1846, 1852, 1854–1855, 1855, 1855, 1858–1859, 1859, 1859, 1862, 319–320, 322–323, 325–326, 339–340, 342–343, 57, 658–661, 861
src/brushes
   base_brush.class.ts100%100%100%100%
   circle_brush.class.ts2.99%0%0%3.92%100–101, 103, 105–107, 116, 116, 116, 118, 120, 122–124, 126–129, 137, 144, 146, 26, 31–32, 40–44, 48–52, 59–62, 70–74, 76, 84, 84, 84, 84, 84–85, 87, 87, 87–90, 92
   pattern_brush.class.ts5.26%0%0%8.33%16, 20–23, 25–26, 26, 26–29, 37–38, 40, 44, 55, 55, 55, 63–65, 65, 65, 72–73, 75–76, 76, 80
   pencil_brush.class.ts91.95%85.42%100%93.69%125–126, 155, 155–157, 279, 283, 288–289, 71–72, 87–88
   spray_brush.class.ts2.30%0%0%3.08%102–104, 106–107, 115, 115, 115, 115, 115–116, 118–119, 126–127, 129, 131–135, 144, 148–149, 149, 157, 157, 157–160, 162–165, 169–170, 172, 174–177, 180, 187–188, 190, 192–193, 195, 202–203, 205–206, 209, 209, 216, 216, 220, 25–26, 28–30, 30, 30–32, 36, 45, 52, 59, 66, 73, 80, 92–94
src/color
   color.class.ts91.67%84.51%100%94.44%325–326, 330–331, 334–335, 41, 45, 72–73, 73, 75, 75, 75–76, 78–79
   color_map.ts100%100%100%100%
   constants.ts100%100%100%100%
   index.ts100%100%100%100%
   util.ts100%100%100%100%
src/controls
   actions.ts100%100%100%100%
   changeWidth.ts100%100%100%100%
   control.class.ts93.98%88.89%90.91%97.78%236, 320, 320, 355
   controls.render.ts81.63%78%100%84.78%106, 111, 121, 121, 45, 50, 61, 61, 65–72, 81–82
   default_controls.ts72.73%50%100%100%109, 113, 120
   drag.ts100%100%100%100%
   rotate.ts20%12.50%50%22.22%44, 50, 50, 50–51, 54–56, 58, 58, 58, 58, 58–60, 60, 60–62, 64, 64, 64–66, 66, 66–67, 72, 72, 72–73, 75, 77, 79–80
   scale.ts94.41%94.74%100%93.59%129–130, 132–134, 181–183, 42
   scaleSkew.ts80.56%66.67%100%92.31%14, 28, 30, 30, 30, 32, 34
   skew.ts91.03%79.31%100%97.67%131–132, 163–164, 171, 177, 179
   util.ts100%100%100%100%
   wrapWithFireEvent.ts100%100%100%100%
   wrapWithFixedAnchor.ts100%100%100%100%
src/filters
   2d_backend.class.ts92%83.33%100%93.75%34–35
   WebGLProbe.ts51.02%50%66.67%48.28%31–33, 33, 33–34, 36–38, 46, 49–51, 51, 51–54, 56, 61, 71–72
   base_filter.class.ts22.35%20.41%38.10%20%100, 102–104, 104, 104–105, 112–114, 114, 114–115, 122–125, 125, 125–126, 132, 132, 132–135, 153, 183–188, 192–193, 193, 193–196, 196, 196, 196, 196–198, 204, 213–214, 219–223, 265–268, 284, 284, 284–285, 287, 303–305, 305, 305, 305, 305–306, 308, 310–311, 313–314, 316–318, 326–327, 329, 33, 333–335, 339, 339, 339, 343, 343, 343–344, 366, 366, 366–370, 54–55, 83–84, 86, 86, 86–87, 87, 90, 95–97, 99, 99, 99, 99, 99, 99
   blendcolor_filter.class.ts10%4.76%28.57%9.72%104, 126, 128, 128, 128–130, 135, 145–147, 155, 157–160, 162–165, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 169–172, 174–177, 179–182,

@ShaMan123 ShaMan123 changed the title chore(TS): collection chore(TS): Collection Nov 13, 2022
@ShaMan123 ShaMan123 requested a review from asturur November 13, 2022 08:29
@asturur
Copy link
Member

asturur commented Nov 19, 2022

Fabric.Collection wasn't really a public interface, whoever was extending from that for custom use cases can still use the createCollectionMixin.

Changes are good, i want review tomorrow morning slowly and merge this

class extends createCollectionMixin(CommonMethods) {
add(...objects: FabricObject[]) {
super.add(...objects);
objects.length > 0 && this.renderOnAddRemove && this.requestRenderAll();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One day i would like to go over all of those this.renderOnAddRemove and decide if we really need them.
Those are good for demos because you have to write less, but sometimes boring during normal application development becuase sometimes you are doing something complex and you never want to render automatically.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1
Perhaps this is part of the scope of #8372

@asturur asturur merged commit d02fbf0 into master Nov 20, 2022
@ShaMan123
Copy link
Contributor Author

Fabulous!
Moving to Group/ActiveSelection

@asturur asturur deleted the ts-collection branch November 27, 2022 00:15
frankrousseau pushed a commit to cgwire/fabric.js that referenced this pull request Jan 6, 2023
Co-authored-by: Andrea Bogazzi <andreabogazzi79@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants