Skip to content

Conversation

@ShaMan123
Copy link
Contributor

@ShaMan123 ShaMan123 commented May 22, 2023

Motivation

#8931

Description

The last part of type assertion to handle.
I had to refactor the messy logic of _updateCacheCanvas and extract from it a method that has no side effects getCacheState so Text can override it.

Apart from that is is only one more use of isTextObject

if (!isTextObject(obj)) {
return;
}

I extracted that logic to the text svg mixin => getSVGFontList

Changes

Gist

In Action

@github-actions
Copy link
Contributor

github-actions bot commented May 22, 2023

Build Stats

file / KB (diff) bundled minified
fabric 920.470 (+0.410) 302.358 (+0.441)

Copy link
Contributor Author

@ShaMan123 ShaMan123 left a comment

Choose a reason for hiding this comment

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

DONE

Comment on lines 574 to 578
// IMHO in these lines we are using zoomX and zoomY not the this version.
const additionalWidth =
data.additionalSize.width + this.getHeightOfLine(0) * this.zoomX!;
const additionalHeight =
data.additionalSize.height + this.getHeightOfLine(0) * this.zoomY!;
Copy link
Contributor Author

Choose a reason for hiding this comment

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

this is a comment you left here

@ShaMan123 ShaMan123 requested a review from asturur May 22, 2023 06:16
@github-actions
Copy link
Contributor

github-actions bot commented May 22, 2023

Coverage after merging type-assertions-3-text into master will be

83.64%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
index.node.ts47.83%100%25%60%17, 20, 23, 40, 43, 46
src
   ClassRegistry.ts100%100%100%100%
   Collection.ts94.71%94.64%86.67%97.09%101, 104, 207–208, 233–234
   CommonMethods.ts96.55%87.50%100%100%10
   Intersection.ts100%100%100%100%
   Observable.ts87.23%85.29%84.62%89.36%144–145, 170–171, 39–40, 48, 57, 91, 99
   Point.ts100%100%100%100%
   Shadow.ts98.36%95.65%100%100%178
   cache.ts97.06%90%100%100%57
   config.ts75%66.67%66.67%82.76%130, 138, 138, 138, 138, 138–140, 151–153
   constants.ts100%100%100%100%
src/Pattern
   Pattern.ts92.21%91.89%90%93.33%116, 127, 136, 29, 92
src/brushes
   BaseBrush.ts100%100%100%100%
   CircleBrush.ts0%0%0%0%108, 108, 108, 110, 112, 114–116, 118–121, 128–129, 136, 138, 23–24, 32–36, 40–44, 51–54, 62–66, 68, 76, 76, 76, 76, 76–77, 79, 79, 79–82, 84, 92–93, 95, 97–99
   PatternBrush.ts97.06%87.50%100%100%21
   PencilBrush.ts91.01%82.35%100%93.75%122–123, 152, 152–154, 176, 176, 276, 280, 285–286, 68–69, 84–85
   SprayBrush.ts0%0%0%0%107, 107, 107, 107, 107–108, 110–111, 118–119, 121, 123–127, 136, 140–141, 141, 149, 149, 149–152, 154–157, 161–162, 164, 166–169, 17, 172, 179, 18, 180, 182, 184–185, 187, 194–195, 197–198, 20, 201, 201, 208, 208, 21, 212, 22, 22, 22–24, 28, 37, 44, 51, 58, 65, 84–86, 94–96, 98–99
src/canvas
   Canvas.ts79.05%77.54%83.05%79.57%1001–1002, 1002, 1002–1004, 1006–1007, 1007, 1007, 1009, 1017, 1017, 1017–1019, 1019, 1019, 1025–1026, 1034–1035, 1035, 1035–1036, 1041, 1043, 1074–1076, 1079–1080, 1084–1085, 1198–1200, 1203–1204, 1277, 1396, 1519, 162, 187, 297–298, 301–305, 310, 333–334, 339–344, 364, 364, 364–365, 365, 365–366, 37, 374, 379–380, 380, 380–381, 383, 392, 398–399, 399, 399, 41, 442, 450, 454, 454, 454–455, 457, 539–540, 540, 540–541, 547, 547, 547–549, 569, 571, 571, 571–572, 572, 572, 575, 575, 575–576, 579, 588–589, 591–592, 594, 594–595, 597–598, 610–611, 611, 611–612, 614–619, 625, 632, 669, 669, 669, 671, 673–678, 684, 690, 690, 690–691, 693, 696, 701, 714, 742, 742, 800–801, 801, 801–802, 804, 807–808, 808, 808–809, 811–812, 815, 815–817, 820–821, 891, 903, 910, 931, 963, 984–985
   SelectableCanvas.ts94.39%91.16%94.64%96.62%1120, 1120–1121, 1124, 1144, 1144, 1202, 1255–1256, 1277, 1285, 1410, 1412, 1414–1415, 519, 699–700, 702–703, 703, 703, 752–753, 814–815, 868–870, 902, 907–908, 935–936
   StaticCanvas.ts96.88%92.75%100%98.79%1098–1099, 1099, 1099–1100, 1220, 1230, 1284–1285, 1288, 1308, 1379, 1388, 1388, 1392, 1392, 1439–1440, 306–307, 324, 755, 767–768
   TextEditingManager.ts82.69%55.56%91.67%100%15, 15, 15, 15, 15, 15, 15, 15
src/color
   Color.ts94.96%91.67%96.30%96.05%233, 258–259, 267–268, 48
   color_map.ts100%100%100%100%
   constants.ts100%100%100%100%
   util.ts85.71%76.92%100%89.74%55–56, 56, 58, 58, 58–59, 61–62, 89
src/controls
   Control.ts93.33%87.88%91.67%97.78%175, 240, 327, 327, 362
   changeWidth.ts100%100%100%100%
   commonControls.ts100%100%100%100%
   controlRendering.ts81.63%78%100%84.78%106, 111, 121, 121, 45, 50, 61, 61, 65–72, 81–82
   drag.ts100%100%100%100%
   fireEvent.ts88.89%75%100%100%13
   polyControl.ts5.97%0%0%11.11%100, 105, 119, 119, 119, 119, 119, 121–124, 124, 127, 134, 17, 25–29, 29, 29, 29, 29, 29, 29, 29, 50–56, 56, 56, 56, 56, 58, 63–64, 66, 76, 82–83, 83, 83–84, 88–90, 90, 90, 90, 90, 92
   rotate.ts19.57%12.50%50%21.43%41, 45, 51, 51, 51–52, 55–57, 59, 59, 59, 59, 59–61, 61, 61–63, 65, 65, 65–67, 67, 67–68, 73, 73, 73–74, 76, 78, 80–81
   scale.ts93.57%92.94%100%93.67%129–130, 132–134, 148–149, 181–183, 42
   scaleSkew.ts78.79%64.29%100%85.71%27, 29, 29, 29, 31, 33, 35
   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/env
   browser.ts84.21%77.78%50%100%14, 17
   index.ts100%100%100%100%
   node.ts74.07%33.33%66.67%88.89%27, 31–32, 32, 32, 37
src/filters
   BaseFilter.ts21.62%23.21%32%18.27%100, 100, 100–101, 108–111,

Copy link
Contributor Author

@ShaMan123 ShaMan123 left a comment

Choose a reason for hiding this comment

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

DONE after porting

Comment on lines +1896 to +1901
// eslint-disable-next-line @typescript-eslint/no-empty-interface
export interface Text<
Props extends TProps<TextProps> = Partial<TextProps>,
SProps extends SerializedTextProps = SerializedTextProps,
EventSpec extends ObjectEvents = ObjectEvents
> extends TextSVGExportMixin {}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

typed the svg mixin

Comment on lines 290 to 299
getSVGFontList() {
const fontList: Record<string, boolean> = { [this.fontFamily]: true };
this.styles &&
Object.values(this.styles).forEach((styleRow) => {
Object.values(styleRow).forEach(({ fontFamily = '' }) => {
fontList[fontFamily] = true;
});
});
return fontList;
}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

ported from #8954

@stale
Copy link

stale bot commented Aug 12, 2023

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs 😔. Thank you for your contributions.

@stale stale bot added the stale Issue marked as stale by the stale bot label Aug 12, 2023
@ShaMan123 ShaMan123 removed the stale Issue marked as stale by the stale bot label Aug 14, 2023
@stale
Copy link

stale bot commented Sep 17, 2023

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs 😔. Thank you for your contributions.

@stale stale bot added the stale Issue marked as stale by the stale bot label Sep 17, 2023
@ShaMan123 ShaMan123 removed the stale Issue marked as stale by the stale bot label Sep 18, 2023
@ShaMan123
Copy link
Contributor Author

We disagreed on this so closing

@ShaMan123 ShaMan123 closed this May 6, 2024
@ShaMan123 ShaMan123 deleted the type-assertions-3-text branch May 6, 2024 16:43
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