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

fix(): Parse use directive attribute issues #10053

Merged
merged 12 commits into from
Aug 11, 2024
Merged

Conversation

asturur
Copy link
Member

@asturur asturur commented Aug 11, 2024

Description

When parsing a use element, the priority for attribute is from the original.
You can't override a fill or a stroke that are defined in the object you are referencing.
When style is in place, you have to merge by features not by attribute.

So the priority is as follow:
The parent element style fill takes precedence over the parent element fill attribute and they define the parent fill color.
If a parent fill color is defined, you can't change in any way the used element color.
We do that by encoding that color value in the use-cloned style.

Also refactored some code to be more terse

Copy link

codesandbox bot commented Aug 11, 2024

Review or Edit in CodeSandbox

Open the branch in Web EditorVS CodeInsiders

Open Preview

@@ -12,6 +12,7 @@ export function parseStyleString(
.replace(/;\s*$/, '')
.split(';')
.forEach((chunk) => {
if (!chunk) return;
Copy link
Member Author

Choose a reason for hiding this comment

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

@gloriousjob solves an issue with empty style attribute

Copy link
Contributor

github-actions bot commented Aug 11, 2024

Build Stats

file / KB (diff) bundled minified
fabric 920.006 (+0.627) 306.798 (-0.044)

@asturur asturur marked this pull request as ready for review August 11, 2024 11:31
@@ -36,7 +36,7 @@
test: 'Svg import test ' + svgName,
code: test,
golden: svgName + '.png',
percentage: 0.06,
percentage: 0.04,
Copy link
Member Author

Choose a reason for hiding this comment

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

lowered the percentage of possible failures

@asturur
Copy link
Member Author

asturur commented Aug 11, 2024

Added a failing test for the use with classNames that i don't want to go into fixing now

Copy link
Contributor

Coverage after merging parse-use-directive into master will be

84.82%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
index.node.ts14.29%100%0%25%23, 26, 29, 41, 44, 47
src
   ClassRegistry.ts91.18%64.29%100%97.92%35, 56
   Collection.ts78.47%42.62%87.10%85.82%130, 138, 153, 155–157, 159, 169–170, 181, 197, 215, 217, 228, 243, 254, 265, 270, 279, 281, 286–287, 302, 304, 309–310, 329, 333–334, 338–344, 346–348, 350
   CommonMethods.ts91.43%71.43%100%96%50, 52
   Intersection.ts85.25%48.91%100%97.30%184–188, 190, 228, 237, 239, 289, 297, 297
   Observable.ts80.63%53.49%93.75%87.88%144, 153, 156, 168, 170, 175, 68–70, 72, 76, 80, 84–85, 87–91
   Point.ts90.27%61.22%100%93.60%104, 117, 148, 157, 179, 197, 206, 216, 225, 236–239, 259, 285, 297, 317, 328, 341, 349, 359, 95
   Shadow.ts89.21%78.26%100%90%140, 143, 145–150, 159, 196, 199, 206, 223–230, 234–235
   cache.ts84.88%45.45%100%90.14%57, 59, 71–72, 74–77
   config.ts87.73%55%66.67%94.03%132, 134–137, 139, 142–143, 147, 152
   constants.ts100%100%100%100%
src/LayoutManager
   ActiveSelectionLayoutManager.ts93.33%76.92%85.71%100%
   LayoutManager.ts90.75%65.48%76.92%99.31%279, 344, 355
   constants.ts100%100%100%100%
   index.ts48.57%37.50%80%66.67%1, 1, 1–2, 2, 2–3, 3, 3–4, 4, 4–5, 5, 5, 5–6
   types.ts100%100%100%100%
src/LayoutManager/LayoutStrategies
   ClipPathLayout.ts75%56.25%100%78.95%39, 41–44, 46–48, 66–69
   FitContentLayout.ts100%100%100%100%
   FixedLayout.ts85.71%20%100%100%23, 23
   LayoutStrategy.ts89.26%60.71%100%97.67%54, 73, 75
   utils.ts72.58%50%100%78.72%29–32, 34–35, 40–44
src/Pattern
   Pattern.ts70.18%90.91%80%65.95%105–107, 114, 118–119, 119–122, 130–138, 140–141, 143, 153–164, 174, 176–181, 183–188, 190–199, 204–205, 207–209, 211, 33, 37
src/brushes
   BaseBrush.ts89.33%91.67%100%88.55%110, 115, 124–125, 130, 135, 143, 146, 155–160, 99
   CircleBrush.ts52.10%12.50%12.50%58.25%100–108, 108–118, 122, 130–139, 55, 67, 69, 76, 76, 78–79, 79, 83, 85–86, 92–98
   PatternBrush.ts97.06%87.50%100%100%21
   PencilBrush.ts91.06%82.35%100%93.81%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, 148, 148, 148–151, 153–156, 160–161, 163, 165–168, 17, 171, 178–179, 18, 181, 183–184, 186, 193–194, 196–197, 20, 200, 200, 207, 207, 21, 211, 22, 22, 22–24, 28, 32, 39, 46, 53, 60, 67, 84–86, 94–96, 98–99
src/canvas
   Canvas.ts75.45%39.53%92.86%85%1004, 1007–1008, 1012–1013, 1018, 1063–1068, 1105, 1126, 1128, 1130, 1137, 1140, 1203–1207, 1286–1290, 1317, 1334, 1380–1397, 1403–1408, 1411–1412, 1414, 1418, 1420–1421, 1423–1425, 1429, 1431, 1433–1435, 1438–1443, 1446–1448, 1451, 1453, 1467, 1474, 1476–1487, 1489–1492, 1492, 1494, 1498–1499, 1502–1503, 1506–1508, 1511, 328, 353, 369, 388, 443, 559–563, 566–567, 569, 579, 582–583, 585, 588–590, 602, 609–613, 615–620, 622–626, 659, 661, 668–672, 674–679, 681, 683–684, 686–689, 691–692, 747, 783–786, 789, 791, 794, 796, 798, 824, 886–887, 932–933, 935–936, 938, 947–953, 956, 963–964, 966–970, 972, 974, 995–996, 999
   CanvasOptions.ts100%100%100%100%
   SelectableCanvas.ts85.45%54.22%100%94.39%1006, 1008–1009, 1026, 1035, 1103–1107, 1153–1154, 1156–1157, 1159, 1186, 1188–1189, 1189, 1191, 1233, 1235, 1237, 1253, 1255, 1283, 1286, 1329–1336, 1339, 1342, 1351–1352, 1356–1365, 1369, 1371–1372, 1378–1383, 1387, 340–342, 346, 376, 398, 476, 527, 529, 605, 610, 687, 715
   StaticCanvas.ts75.74%69.50%98.91%75.30%1005, 1008, 1010, 1012, 1020, 1022–1028, 1038, 1041, 1044–1050, 1052–1053, 1055–1076, 1083–1085, 1087, 1095, 1101–1103, 1103–1104, 1104–1105, 1107, 1107–1112, 1125, 1130–1132, 1136, 1140, 1142, 1144, 1149–1153, 1155, 1157–1160, 1163, 1165, 1174, 1176–1177, 1184–1187, 1189, 1195–1198, 1202–1203, 1213, 1219–1221, 1223–1228, 1228, 1228–1232, 1232, 1232–1237, 1239–1246, 1275–1276, 1278–1283, 1285–1291, 1295, 1297–1310, 1318–1319, 1329, 1340, 1381–1385, 1387, 1389, 1391–1395, 1414, 1430, 1447, 1467, 1500, 1504, 1515–1517, 424, 435, 443–448, 456, 495, 497, 549, 553, 564,

@asturur asturur merged commit fe4f994 into master Aug 11, 2024
20 checks passed
@asturur asturur deleted the parse-use-directive branch August 11, 2024 13:30
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.

1 participant