diff --git a/src/data/roadmaps/angular/angular.json b/src/data/roadmaps/angular/angular.json index 59f599a5a..d372b5a9a 100644 --- a/src/data/roadmaps/angular/angular.json +++ b/src/data/roadmaps/angular/angular.json @@ -1,5859 +1,7207 @@ { - "mockup": { - "controls": { - "control": [ - { - "ID": "2968", - "typeID": "Arrow", - "zOrder": "0", - "w": "1", - "h": "92", - "measuredW": "150", - "measuredH": "100", - "x": "705", - "y": "401", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": -0.3346582539068095, - "y": 0 - }, - "p1": { - "x": 0.5209787928221856, - "y": 0.005742251223491234 - }, - "p2": { - "x": -0.3346582539068095, - "y": 91.5 - } - } - }, - { - "ID": "2969", - "typeID": "Arrow", - "zOrder": "1", - "w": "1", - "h": "92", - "measuredW": "150", - "measuredH": "100", - "x": "705", - "y": "238", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": -0.3346582539068095, - "y": 0 - }, - "p1": { - "x": 0.5209787928221856, - "y": 0.005742251223491234 - }, - "p2": { - "x": -0.3346582539068095, - "y": 91.5 - } - } - }, - { - "ID": "2970", - "typeID": "Arrow", - "zOrder": "2", - "w": "1", - "h": "108", - "measuredW": "150", - "measuredH": "100", - "x": "707", - "y": "130", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": -0.3346582539068095, - "y": 0 - }, - "p1": { - "x": 0.5209787928221856, - "y": 0.005742251223491234 - }, - "p2": { - "x": -0.3346582539068095, - "y": 108 - } - } - }, - { - "ID": "2971", - "typeID": "Arrow", - "zOrder": "3", - "w": "147", - "h": "139", - "measuredW": "150", - "measuredH": "100", - "x": "476", - "y": "2250", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 146.93535762737952, - "y": -0.4256786899632061 - }, - "p1": { - "x": 0.5656811947576953, - "y": -0.05547089302042055 - }, - "p2": { - "x": -0.43820569842159784, - "y": 138.13066289839662 - } - } - }, - { - "ID": "2972", - "typeID": "Arrow", - "zOrder": "4", - "w": "137", - "h": "97", - "measuredW": "150", - "measuredH": "100", - "x": "481", - "y": "2243", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 137.79594489989745, - "y": -0.30749565311725746 - }, - "p1": { - "x": 0.5656811947576953, - "y": -0.055470893020420554 - }, - "p2": { - "x": 0.38433587934019897, - "y": 96.9750594056843 - } - } - }, - { - "ID": "2973", - "typeID": "Arrow", - "zOrder": "5", - "w": "152", - "h": "67", - "measuredW": "150", - "measuredH": "100", - "x": "475", - "y": "2161", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 152.30816846754254, - "y": 67.10012108806256 - }, - "p1": { - "x": 0.5245584633234497, - "y": 0.05852778135877274 - }, - "p2": { - "x": 0.30417618816505865, - "y": 0.21836448513636242 - } - } - }, - { - "ID": "2974", - "typeID": "Arrow", - "zOrder": "6", - "w": "148", - "h": "47", - "measuredW": "150", - "measuredH": "100", - "x": "463", - "y": "2238", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 148.4997532704873, - "y": -0.17162340605727877 - }, - "p1": { - "x": 0.5656811947576955, - "y": -0.055470893020420554 - }, - "p2": { - "x": 0.1438568058148917, - "y": 47.2536221851085 - } - } - }, - { - "ID": "2975", - "typeID": "Arrow", - "zOrder": "7", - "w": "145", - "h": "15", - "measuredW": "150", - "measuredH": "100", - "x": "473", - "y": "2216", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 144.5799129616624, - "y": 14.532184964532576 - }, - "p1": { - "x": 0.5205160087037614, - "y": 0.039011501398818746 - }, - "p2": { - "x": -0.127887688304952, - "y": -0.060198294287715726 - } - } - }, - { - "ID": "2976", - "typeID": "Arrow", - "zOrder": "8", - "w": "136", - "h": "5", - "measuredW": "150", - "measuredH": "100", - "x": "950", - "y": "2032", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 136, - "y": 0 - }, - "p1": { - "x": 0.5718039173147684, - "y": -0.006974564311454232 - }, - "p2": { - "x": -0.33608340984960705, - "y": 5.057669186803878 - } - } - }, - { - "ID": "2977", - "typeID": "Arrow", - "zOrder": "9", - "w": "104", - "h": "40", - "measuredW": "150", - "measuredH": "100", - "x": "946", - "y": "1986", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 104.43216501804841, - "y": 0.3172722921526656 - }, - "p1": { - "x": 0.5205160087037611, - "y": 0.039011501398818815 - }, - "p2": { - "x": 0.3887527462180742, - "y": 40.556174604332455 - } - } - }, - { - "ID": "2978", - "typeID": "Arrow", - "zOrder": "10", - "w": "136", - "h": "5", - "measuredW": "150", - "measuredH": "100", - "x": "950", - "y": "1980", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 136, - "y": 0 - }, - "p1": { - "x": 0.5718039173147684, - "y": -0.006974564311454232 - }, - "p2": { - "x": -0.33608340984960705, - "y": 5.057669186803878 - } - } - }, - { - "ID": "2979", - "typeID": "Arrow", - "zOrder": "11", - "w": "4", - "h": "617", - "measuredW": "150", - "measuredH": "100", - "x": "790", - "y": "2042", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 3.6653417460931905, - "y": 616.945330548373 - }, - "p1": { - "x": 0.5209787928221856, - "y": 0.0057422512234912276 - }, - "p2": { - "x": 3.6653417460931905, - "y": -0.1453471090021594 - } - } - }, - { - "ID": "2980", - "typeID": "Arrow", - "zOrder": "12", - "w": "274", - "h": "90", - "measuredW": "150", - "measuredH": "100", - "x": "439", - "y": "1888", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 273.85853278458967, - "y": 90.7596536600604 - }, - "p1": { - "x": 0.5394209656837318, - "y": 0.08127816093452517 - }, - "p2": { - "x": 0.2417599083887012, - "y": 0.49483933119245194 - } - } - }, - { - "ID": "2981", - "typeID": "Arrow", - "zOrder": "13", - "w": "1", - "h": "82", - "measuredW": "150", - "measuredH": "100", - "x": "407", - "y": "1894", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 0.6653417460931905, - "y": 82.26052647176084 - }, - "p1": { - "x": 0.5209787928221856, - "y": 0.005742251223491229 - }, - "p2": { - "x": 0.6653417460931905, - "y": -0.1453471090021594 - } - } - }, - { - "ID": "2982", - "typeID": "Arrow", - "zOrder": "14", - "w": "1", - "h": "82", - "measuredW": "150", - "measuredH": "100", - "x": "291", - "y": "1882", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 0.6653417460931905, - "y": 82.26052647176084 - }, - "p1": { - "x": 0.5209787928221856, - "y": 0.005742251223491229 - }, - "p2": { - "x": 0.6653417460931905, - "y": -0.1453471090021594 - } - } - }, - { - "ID": "2983", - "typeID": "Arrow", - "zOrder": "15", - "w": "165", - "h": "4", - "measuredW": "150", - "measuredH": "100", - "x": "429", - "y": "1878", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 165.29974235933003, - "y": 3.223922187594326 - }, - "p1": { - "x": 0.5209787928221858, - "y": 0.0057422512234912345 - }, - "p2": { - "x": 0.2387810888058084, - "y": -0.32883026031754525 - } - } - }, - { - "ID": "2984", - "typeID": "Arrow", - "zOrder": "16", - "w": "1", - "h": "87", - "measuredW": "150", - "measuredH": "100", - "x": "1060", - "y": "1598", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 0.6653417460931905, - "y": 86.60548396943796 - }, - "p1": { - "x": 0.5209787928221857, - "y": 0.005742251223491228 - }, - "p2": { - "x": 0.6653417460931905, - "y": -0.18809294361221873 - } - } - }, - { - "ID": "2985", - "typeID": "Arrow", - "zOrder": "17", - "w": "110", - "h": "48", - "measuredW": "150", - "measuredH": "100", - "x": "406", - "y": "1696", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 110.1089405697204, - "y": 0.09286914910626365 - }, - "p1": { - "x": 0.5902039507828301, - "y": -0.08117284189966499 - }, - "p2": { - "x": -0.08142479985480122, - "y": 47.76718365292663 - } - } - }, - { - "ID": "2986", - "typeID": "Arrow", - "zOrder": "18", - "w": "232", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "678", - "y": "1690", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 231.23278894059456, - "y": 0.2239221875943258 - }, - "p1": { - "x": 0.5209787928221857, - "y": 0.005742251223491235 - }, - "p2": { - "x": -0.3346582539068095, - "y": 0.2239221875944395 - } - } - }, - { - "ID": "2987", - "typeID": "Arrow", - "zOrder": "19", - "w": "1", - "h": "205", - "measuredW": "150", - "measuredH": "100", - "x": "584", - "y": "1579", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": -0.3346582539068095, - "y": 205.1628221932308 - }, - "p1": { - "x": 0.5160009912864776, - "y": -0.006662715401372748 - }, - "p2": { - "x": -0.3346582539068095, - "y": -0.1453471090021594 - } - } - }, - { - "ID": "2988", - "typeID": "Arrow", - "zOrder": "20", - "w": "121", - "h": "93", - "measuredW": "150", - "measuredH": "100", - "x": "398", - "y": "1578", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 120.93806896294319, - "y": 93.17429394896112 - }, - "p1": { - "x": 0.516182454167905, - "y": 0.07501328692757027 - }, - "p2": { - "x": -0.31766348911210684, - "y": -0.0011636194603852346 - } - } - }, - { - "ID": "2989", - "typeID": "Arrow", - "zOrder": "21", - "w": "137", - "h": "3", - "measuredW": "150", - "measuredH": "100", - "x": "385", - "y": "1687", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 137, - "y": 3 - }, - "p1": { - "x": 0.5718039173147684, - "y": -0.006974564311454229 - }, - "p2": { - "x": -0.08142479985480122, - "y": 0.7671836529266329 - } - } - }, - { - "ID": "2990", - "typeID": "Arrow", - "zOrder": "22", - "w": "122", - "h": "54", - "measuredW": "150", - "measuredH": "100", - "x": "392", - "y": "1626", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 121.83256443864616, - "y": 54.10892686648094 - }, - "p1": { - "x": 0.516182454167905, - "y": 0.07501328692757032 - }, - "p2": { - "x": 0, - "y": 0 - } - } - }, - { - "ID": "2991", - "typeID": "Arrow", - "zOrder": "23", - "w": "160", - "h": "188", - "measuredW": "150", - "measuredH": "100", - "x": "662", - "y": "1491", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": -0.3841804878131825, - "y": 188.49997944514098 - }, - "p1": { - "x": 0.49884332978224843, - "y": -0.21997537262096778 - }, - "p2": { - "x": 159.6653417460932, - "y": 0.2239221875944395 - } - } - }, - { - "ID": "2992", - "typeID": "Arrow", - "zOrder": "24", - "w": "112", - "h": "19", - "measuredW": "150", - "measuredH": "100", - "x": "870", - "y": "1489", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 111.98622841182782, - "y": 19.46557788118912 - }, - "p1": { - "x": 0.49235273148208303, - "y": -0.056041280138932066 - }, - "p2": { - "x": -0.33487112270768193, - "y": 0.31993591507512065 - } - } - }, - { - "ID": "2993", - "typeID": "Arrow", - "zOrder": "25", - "w": "110", - "h": "36", - "measuredW": "150", - "measuredH": "100", - "x": "868", - "y": "1441", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 110.15710001860498, - "y": -0.18235706574705546 - }, - "p1": { - "x": 0.5205160087037611, - "y": 0.03901150139881878 - }, - "p2": { - "x": 0.3887527462180742, - "y": 35.556174604332455 - } - } - }, - { - "ID": "2994", - "typeID": "Arrow", - "zOrder": "26", - "w": "121", - "h": "93", - "measuredW": "150", - "measuredH": "100", - "x": "399", - "y": "1377", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 120.93806896294319, - "y": 93.17429394896112 - }, - "p1": { - "x": 0.516182454167905, - "y": 0.07501328692757027 - }, - "p2": { - "x": -0.31766348911210684, - "y": -0.0011636194603852346 - } - } - }, - { - "ID": "2995", - "typeID": "Arrow", - "zOrder": "27", - "w": "153", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "660", - "y": "1482", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 152.30933474099322, - "y": 0.48329069395197166 - }, - "p1": { - "x": 0.5209787928221856, - "y": 0.0057422512234912345 - }, - "p2": { - "x": -0.3346582539068095, - "y": 1.2239221875944395 - } - } - }, - { - "ID": "2996", - "typeID": "Arrow", - "zOrder": "28", - "w": "137", - "h": "3", - "measuredW": "150", - "measuredH": "100", - "x": "386", - "y": "1486", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 137, - "y": 3 - }, - "p1": { - "x": 0.5718039173147684, - "y": -0.006974564311454229 - }, - "p2": { - "x": -0.08142479985480122, - "y": 0.7671836529266329 - } - } - }, - { - "ID": "2997", - "typeID": "Arrow", - "zOrder": "29", - "w": "122", - "h": "54", - "measuredW": "150", - "measuredH": "100", - "x": "393", - "y": "1425", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 121.83256443864616, - "y": 54.10892686648094 - }, - "p1": { - "x": 0.516182454167905, - "y": 0.07501328692757032 - }, - "p2": { - "x": 0, - "y": 0 - } - } - }, - { - "ID": "2998", - "typeID": "Arrow", - "zOrder": "30", - "w": "162", - "h": "253", - "measuredW": "150", - "measuredH": "100", - "x": "593", - "y": "1216", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": -0.3084915658236014, - "y": 252.89791781788676 - }, - "p1": { - "x": 0.45433123552684945, - "y": -0.17593627878712412 - }, - "p2": { - "x": 162, - "y": 0 - } - } - }, - { - "ID": "2999", - "typeID": "Arrow", - "zOrder": "31", - "w": "137", - "h": "97", - "measuredW": "150", - "measuredH": "100", - "x": "545", - "y": "1209", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 137.79594489989745, - "y": -0.30749565311725746 - }, - "p1": { - "x": 0.5656811947576953, - "y": -0.055470893020420554 - }, - "p2": { - "x": 0.38433587934019897, - "y": 96.9750594056843 - } - } - }, - { - "ID": "3000", - "typeID": "Arrow", - "zOrder": "32", - "w": "152", - "h": "67", - "measuredW": "150", - "measuredH": "100", - "x": "539", - "y": "1127", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 152.30816846754254, - "y": 67.10012108806256 - }, - "p1": { - "x": 0.5245584633234497, - "y": 0.05852778135877274 - }, - "p2": { - "x": 0.30417618816505865, - "y": 0.21836448513636242 - } - } - }, - { - "ID": "3001", - "typeID": "Arrow", - "zOrder": "33", - "w": "148", - "h": "47", - "measuredW": "150", - "measuredH": "100", - "x": "527", - "y": "1204", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 148.4997532704873, - "y": -0.17162340605727877 - }, - "p1": { - "x": 0.5656811947576955, - "y": -0.055470893020420554 - }, - "p2": { - "x": 0.1438568058148917, - "y": 47.2536221851085 - } - } - }, - { - "ID": "3002", - "typeID": "Arrow", - "zOrder": "34", - "w": "145", - "h": "15", - "measuredW": "150", - "measuredH": "100", - "x": "537", - "y": "1182", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 144.5799129616624, - "y": 14.532184964532576 - }, - "p1": { - "x": 0.5205160087037614, - "y": 0.039011501398818746 - }, - "p2": { - "x": -0.127887688304952, - "y": -0.060198294287715726 - } - } - }, - { - "ID": "3003", - "typeID": "Arrow", - "zOrder": "35", - "w": "1", - "h": "109", - "measuredW": "150", - "measuredH": "100", - "x": "652", - "y": "868", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 0.6653417460931905, - "y": 108.91512571003409 - }, - "p1": { - "x": 0.5209787928221856, - "y": 0.005742251223491229 - }, - "p2": { - "x": 0.6653417460931905, - "y": -0.1453471090021594 - } - } - }, - { - "ID": "3004", - "typeID": "Arrow", - "zOrder": "36", - "w": "2", - "h": "212", - "measuredW": "150", - "measuredH": "100", - "x": "754", - "y": "976", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 2, - "y": 211.63760017984214 - }, - "p1": { - "x": 0.5232067510548527, - "y": -0.004219409282700418 - }, - "p2": { - "x": -0.36468620791185913, - "y": -0.28900271550764955 - } - } - }, - { - "ID": "3005", - "typeID": "Arrow", - "zOrder": "37", - "w": "133", - "h": "72", - "measuredW": "150", - "measuredH": "100", - "x": "474", - "y": "973", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 133.14610551279748, - "y": 0.35325766066625874 - }, - "p1": { - "x": 0.54496644295302, - "y": -0.04519015659955244 - }, - "p2": { - "x": -0.10087148815074443, - "y": 72.101629891946 - } - } - }, - { - "ID": "3006", - "typeID": "Arrow", - "zOrder": "38", - "w": "153", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "820", - "y": "744", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 152.30933474099322, - "y": 0.48329069395197166 - }, - "p1": { - "x": 0.5209787928221856, - "y": 0.0057422512234912345 - }, - "p2": { - "x": -0.3346582539068095, - "y": 1.2239221875944395 - } - } - }, - { - "ID": "3007", - "typeID": "Arrow", - "zOrder": "39", - "w": "152", - "h": "16", - "measuredW": "150", - "measuredH": "100", - "x": "464", - "y": "970", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 152.11465204170747, - "y": 0.7908157952633701 - }, - "p1": { - "x": 0.5449664429530199, - "y": -0.04519015659955239 - }, - "p2": { - "x": -0.35063894976218535, - "y": 16.165466987680475 - } - } - }, - { - "ID": "3008", - "typeID": "Arrow", - "zOrder": "40", - "w": "137", - "h": "47", - "measuredW": "150", - "measuredH": "100", - "x": "473", - "y": "913", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 136.70854737820036, - "y": 47.54104833365204 - }, - "p1": { - "x": 0.5198780554566916, - "y": 0.06964721983543047 - }, - "p2": { - "x": -0.38209242085218875, - "y": 0.1358738236992849 - } - } - }, - { - "ID": "3009", - "typeID": "Arrow", - "zOrder": "41", - "w": "1", - "h": "137", - "measuredW": "150", - "measuredH": "100", - "x": "1080", - "y": "907", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 0.6653417460931905, - "y": 137 - }, - "p1": { - "x": 0.5209787928221855, - "y": 0.00574225122349123 - }, - "p2": { - "x": 0.6653417460931905, - "y": -0.1453471090021594 - } - } - }, - { - "ID": "3010", - "typeID": "Arrow", - "zOrder": "42", - "w": "194", - "h": "4", - "measuredW": "150", - "measuredH": "100", - "x": "763", - "y": "973", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 194, - "y": 4 - }, - "p1": { - "x": 0.5232067510548526, - "y": -0.00421940928270042 - }, - "p2": { - "x": 0, - "y": 0 - } - } - }, - { - "ID": "3011", - "typeID": "Arrow", - "zOrder": "43", - "w": "137", - "h": "97", - "measuredW": "150", - "measuredH": "100", - "x": "477", - "y": "750", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 137.79594489989745, - "y": -0.30749565311725746 - }, - "p1": { - "x": 0.5656811947576953, - "y": -0.055470893020420554 - }, - "p2": { - "x": 0.38433587934019897, - "y": 96.9750594056843 - } - } - }, - { - "ID": "3012", - "typeID": "Arrow", - "zOrder": "44", - "w": "152", - "h": "67", - "measuredW": "150", - "measuredH": "100", - "x": "471", - "y": "668", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 152.30816846754254, - "y": 67.10012108806256 - }, - "p1": { - "x": 0.5245584633234497, - "y": 0.05852778135877274 - }, - "p2": { - "x": 0.30417618816505865, - "y": 0.21836448513636242 - } - } - }, - { - "ID": "3013", - "typeID": "Arrow", - "zOrder": "45", - "w": "148", - "h": "47", - "measuredW": "150", - "measuredH": "100", - "x": "459", - "y": "745", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 148.4997532704873, - "y": -0.17162340605727877 - }, - "p1": { - "x": 0.5656811947576955, - "y": -0.055470893020420554 - }, - "p2": { - "x": 0.1438568058148917, - "y": 47.2536221851085 - } - } - }, - { - "ID": "3014", - "typeID": "Arrow", - "zOrder": "46", - "w": "145", - "h": "15", - "measuredW": "150", - "measuredH": "100", - "x": "469", - "y": "723", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 144.5799129616624, - "y": 14.532184964532576 - }, - "p1": { - "x": 0.5205160087037614, - "y": 0.039011501398818746 - }, - "p2": { - "x": -0.127887688304952, - "y": -0.060198294287715726 - } - } - }, - { - "ID": "3015", - "typeID": "Arrow", - "zOrder": "47", - "w": "161", - "h": "20", - "measuredW": "150", - "measuredH": "100", - "x": "820", - "y": "1771", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": -0.47029652980143055, - "y": 0.29397476431574887 - }, - "p1": { - "x": 0.37221269296741016, - "y": -0.07547169811320738 - }, - "p2": { - "x": 161.00476611133257, - "y": 16.43596323437623 - } - } - }, - { - "ID": "3016", - "typeID": "Arrow", - "zOrder": "48", - "w": "140", - "h": "16", - "measuredW": "150", - "measuredH": "100", - "x": "822", - "y": "1805", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": -0.29036382738183875, - "y": 15.570879075617313 - }, - "p1": { - "x": 0.41689655172413825, - "y": 0.047241379310345256 - }, - "p2": { - "x": 140.06334432619047, - "y": 0.02442632057955052 - } - } - }, - { - "ID": "3017", - "typeID": "Arrow", - "zOrder": "49", - "w": "383", - "h": "90", - "measuredW": "150", - "measuredH": "100", - "x": "659", - "y": "1794", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 383.4921388017138, - "y": -0.13930809626481278 - }, - "p1": { - "x": 0.30117092560179964, - "y": 0.12278545856721967 - }, - "p2": { - "x": 0.2417599083887012, - "y": 88.49483933119245 - } - } - }, - { - "ID": "3018", - "typeID": "Arrow", - "zOrder": "50", - "w": "226", - "h": "473", - "measuredW": "150", - "measuredH": "100", - "x": "708", - "y": "495", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "color": "10027263", - "p0": { - "x": 0.017448325447617208, - "y": 0.3860827641242395 - }, - "p1": { - "x": 0.5879572479383793, - "y": -0.1722762652301552 - }, - "p2": { - "x": 226, - "y": 473 - } - } - }, - { - "ID": "3019", - "typeID": "Arrow", - "zOrder": "51", - "w": "131", - "h": "37", - "measuredW": "150", - "measuredH": "100", - "x": "846", - "y": "485", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 130.47867928563346, - "y": 37.061364879539155 - }, - "p1": { - "x": 0.54496644295302, - "y": -0.04519015659955236 - }, - "p2": { - "x": -0.49385068294191115, - "y": 0.483451104531639 - } - } - }, - { - "ID": "3020", - "typeID": "Arrow", - "zOrder": "52", - "w": "109", - "h": "5", - "measuredW": "150", - "measuredH": "100", - "x": "860", - "y": "473", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 108.21915036869632, - "y": -0.4958086220839846 - }, - "p1": { - "x": 0.5209787928221856, - "y": 0.005742251223491233 - }, - "p2": { - "x": -0.3346582539068095, - "y": 4.2239221875944395 - } - } - }, - { - "ID": "3021", - "typeID": "Arrow", - "zOrder": "53", - "w": "117", - "h": "50", - "measuredW": "150", - "measuredH": "100", - "x": "850", - "y": "421", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 117.03921766627673, - "y": -0.41284752854630824 - }, - "p1": { - "x": 0.5198780554566917, - "y": 0.06964721983543032 - }, - "p2": { - "x": 0.22588012673645608, - "y": 49.14432597307683 - } - } - }, - { - "ID": "3022", - "typeID": "Arrow", - "zOrder": "54", - "w": "107", - "h": "107", - "measuredW": "150", - "measuredH": "100", - "x": "466", - "y": "488", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 107.85873396459311, - "y": -0.1566834906291774 - }, - "p1": { - "x": 0.5656811947576953, - "y": -0.05547089302042045 - }, - "p2": { - "x": 0.4400484352249805, - "y": 106.9113622910445 - } - } - }, - { - "ID": "3023", - "typeID": "Arrow", - "zOrder": "55", - "w": "126", - "h": "56", - "measuredW": "150", - "measuredH": "100", - "x": "458", - "y": "420", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 126, - "y": 56 - }, - "p1": { - "x": 0.5245584633234497, - "y": 0.058527781358772735 - }, - "p2": { - "x": -0.07217513242011364, - "y": -0.19723681479831612 - } - } - }, - { - "ID": "3024", - "typeID": "Arrow", - "zOrder": "56", - "w": "130", - "h": "59", - "measuredW": "150", - "measuredH": "100", - "x": "455", - "y": "482", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 130, - "y": 0 - }, - "p1": { - "x": 0.5656811947576954, - "y": -0.055470893020420554 - }, - "p2": { - "x": 0.49576099110981886, - "y": 59.405957008703695 - } - } - }, - { - "ID": "3025", - "typeID": "Arrow", - "zOrder": "57", - "w": "137", - "h": "6", - "measuredW": "150", - "measuredH": "100", - "x": "453", - "y": "477", - "properties": { - "curvature": "0", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "color": "10027263", - "p0": { - "x": 137, - "y": 1 - }, - "p1": { - "x": 0.5205160087037611, - "y": 0.039011501398818746 - }, - "p2": { - "x": 0.0636971146398082, - "y": -0.04373571775238361 - } - } - }, - { - "ID": "3026", - "typeID": "__group__", - "zOrder": "58", - "measuredW": "240", - "measuredH": "49", - "w": "240", - "h": "49", - "x": "232", - "y": "397", - "properties": { - "controlName": "100-typescript-basics:what-is-typescript" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "240", - "h": "49", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "141", - "measuredW": "150", - "measuredH": "25", - "x": "55", - "y": "12", - "properties": { - "text": "What is TypeScript?", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3027", - "typeID": "__group__", - "zOrder": "59", - "measuredW": "240", - "measuredH": "50", - "w": "240", - "h": "50", - "x": "232", - "y": "509", - "properties": { - "controlName": "102-typescript-basics:structural-typing" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "240", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "131", - "measuredW": "128", - "measuredH": "25", - "x": "54", - "y": "12", - "properties": { - "text": "Structural Typing", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3028", - "typeID": "__group__", - "zOrder": "60", - "measuredW": "240", - "measuredH": "50", - "w": "240", - "h": "50", - "x": "232", - "y": "565", - "properties": { - "controlName": "103-typescript-basics:type-inference" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "240", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "118", - "measuredW": "116", - "measuredH": "25", - "x": "61", - "y": "12", - "properties": { - "text": "Type Inference", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3029", - "typeID": "Label", - "zOrder": "61", - "measuredW": "97", - "measuredH": "36", - "x": "663", - "y": "347", - "properties": { - "size": "28", - "text": "Angular" - } - }, - { - "ID": "3030", - "typeID": "__group__", - "zOrder": "62", - "measuredW": "350", - "measuredH": "141", - "w": "350", - "h": "141", - "x": "910", - "y": "168", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "350", - "h": "141", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "314", - "measuredH": "25", - "x": "14", - "y": "17", - "properties": { - "size": "17", - "text": "Find the detailed version of this roadmap" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "measuredW": "319", - "measuredH": "25", - "x": "14", - "y": "45", - "properties": { - "size": "17", - "text": "along with resources and other roadmaps" - } - }, - { - "ID": "3", - "typeID": "__group__", - "zOrder": "3", - "measuredW": "320", - "measuredH": "45", - "w": "320", - "h": "45", - "x": "15", - "y": "81", - "properties": { - "controlName": "ext_link:roadmap.sh" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "320", - "h": "45", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "borderColor": "4273622", - "color": "4273622" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "105", - "measuredH": "28", - "x": "141", - "y": "8", - "properties": { - "color": "16777215", - "size": "20", - "text": "roadmap.sh" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "measuredW": "45", - "measuredH": "28", - "x": "65", - "y": "8", - "properties": { - "color": "16777215", - "size": "20", - "text": "https" - } - }, - { - "ID": "3", - "typeID": "Label", - "zOrder": "3", - "measuredW": "5", - "measuredH": "28", - "x": "113", - "y": "8", - "properties": { - "color": "16777215", - "size": "20", - "text": ":" - } - }, - { - "ID": "4", - "typeID": "Label", - "zOrder": "4", - "measuredW": "10", - "measuredH": "28", - "x": "120", - "y": "9", - "properties": { - "color": "16777215", - "size": "20", - "text": "/" - } - }, - { - "ID": "5", - "typeID": "Label", - "zOrder": "5", - "measuredW": "10", - "measuredH": "28", - "x": "128", - "y": "9", - "properties": { - "color": "16777215", - "size": "20", - "text": "/" - } - } - ] - } - } - } - ] - } - } - }, - { - "ID": "3031", - "typeID": "__group__", - "zOrder": "63", - "measuredW": "303", - "measuredH": "52", - "w": "303", - "h": "52", - "x": "555", - "y": "457", - "properties": { - "controlName": "100-typescript-basics" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "303", - "h": "52", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "197", - "measuredH": "26", - "x": "53", - "y": "13", - "properties": { - "text": "Learn TypeScript Basics", - "size": "18" - } - } - ] - } - } - }, - { - "ID": "3032", - "typeID": "__group__", - "zOrder": "64", - "measuredW": "240", - "measuredH": "50", - "w": "240", - "h": "50", - "x": "232", - "y": "452", - "properties": { - "controlName": "101-typescript-basics:why-use-typescript" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "240", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "160", - "measuredW": "157", - "measuredH": "25", - "x": "40", - "y": "12", - "properties": { - "text": "Why use TypeScript?", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3033", - "typeID": "__group__", - "zOrder": "65", - "measuredW": "222", - "measuredH": "50", - "w": "222", - "h": "50", - "x": "953", - "y": "396", - "properties": { - "controlName": "104-typescript-basics:union-types" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "222", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "95", - "measuredH": "25", - "x": "63", - "y": "12", - "properties": { - "text": "Union Types", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3034", - "typeID": "__group__", - "zOrder": "66", - "measuredW": "222", - "measuredH": "50", - "w": "222", - "h": "50", - "x": "953", - "y": "451", - "properties": { - "controlName": "105-typescript-basics:builtin-types" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "222", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "100", - "measuredH": "25", - "x": "61", - "y": "12", - "properties": { - "text": "Built-in types", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3035", - "typeID": "__group__", - "zOrder": "67", - "measuredW": "222", - "measuredH": "50", - "w": "222", - "h": "50", - "x": "953", - "y": "507", - "properties": { - "controlName": "106-typescript-basics:type-guard" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "222", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "94", - "measuredW": "97", - "measuredH": "25", - "x": "64", - "y": "12", - "properties": { - "text": "Type Guards", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3036", - "typeID": "__group__", - "zOrder": "68", - "measuredW": "262", - "measuredH": "50", - "w": "262", - "h": "50", - "x": "596", - "y": "722", - "properties": { - "controlName": "101-rxjs-basics" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "262", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "145", - "measuredH": "25", - "x": "63", - "y": "12", - "properties": { - "text": "Learn RxJS Basics", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3037", - "typeID": "__group__", - "zOrder": "69", - "measuredW": "256", - "measuredH": "50", - "w": "256", - "h": "50", - "x": "231", - "y": "645", - "properties": { - "controlName": "100-rxjs-basics:observable-pattern" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "256", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "210", - "measuredH": "25", - "x": "23", - "y": "12", - "properties": { - "text": "What is Observable Pattern", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3038", - "typeID": "__group__", - "zOrder": "70", - "measuredW": "256", - "measuredH": "50", - "w": "256", - "h": "50", - "x": "231", - "y": "700", - "properties": { - "controlName": "101-rxjs-basics:observable-lifecycle" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "256", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "161", - "measuredH": "25", - "x": "47", - "y": "12", - "properties": { - "text": "Observable Lifecycle", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3039", - "typeID": "__group__", - "zOrder": "71", - "measuredW": "256", - "measuredH": "50", - "w": "256", - "h": "50", - "x": "231", - "y": "756", - "properties": { - "controlName": "102-rxjs-basics:marble-diagrams" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "256", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "133", - "measuredH": "25", - "x": "61", - "y": "12", - "properties": { - "text": "Marble Diagrams", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3040", - "typeID": "__group__", - "zOrder": "72", - "measuredW": "256", - "measuredH": "50", - "w": "256", - "h": "50", - "x": "231", - "y": "812", - "properties": { - "controlName": "103-rxjs-basics:rxjs-vs-promises" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "256", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "137", - "measuredH": "25", - "x": "59", - "y": "12", - "properties": { - "text": "RxJS vs Promises", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3041", - "typeID": "__group__", - "zOrder": "73", - "measuredW": "262", - "measuredH": "50", - "w": "262", - "h": "50", - "x": "911", - "y": "945", - "properties": { - "controlName": "102-angular-basics" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "262", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "176", - "measuredH": "25", - "x": "48", - "y": "12", - "properties": { - "text": "Understand the Basics", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3042", - "typeID": "__group__", - "zOrder": "74", - "measuredW": "262", - "measuredH": "50", - "w": "262", - "h": "50", - "x": "910", - "y": "886", - "properties": { - "controlName": "100-angular-basics:angularjs-vs-angular" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "262", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "158", - "measuredH": "25", - "x": "52", - "y": "12", - "properties": { - "text": "Angular.js vs Angular", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3043", - "typeID": "Canvas", - "zOrder": "75", - "w": "198", - "h": "393", - "measuredW": "100", - "measuredH": "70", - "x": "974", - "y": "1011" - }, - { - "ID": "3044", - "typeID": "Label", - "zOrder": "76", - "measuredW": "101", - "measuredH": "26", - "x": "1022", - "y": "1028", - "properties": { - "text": "What are __", - "size": "18" - } - }, - { - "ID": "3045", - "typeID": "__group__", - "zOrder": "77", - "measuredW": "222", - "measuredH": "50", - "w": "222", - "h": "50", - "x": "667", - "y": "1176", - "properties": { - "controlName": "104-templates" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "222", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "80", - "measuredH": "25", - "x": "71", - "y": "12", - "properties": { - "text": "Templates", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3046", - "typeID": "__group__", - "zOrder": "78", - "measuredW": "157", - "measuredH": "50", - "w": "157", - "h": "50", - "x": "231", - "y": "1105", - "properties": { - "controlName": "100-templates:interpolation" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "157", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "98", - "measuredH": "25", - "x": "30", - "y": "11", - "properties": { - "text": "Interpolation", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3047", - "typeID": "__group__", - "zOrder": "79", - "measuredW": "161", - "measuredH": "50", - "w": "161", - "h": "50", - "x": "394", - "y": "1105", - "properties": { - "controlName": "101-templates:property-binding" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "161", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "128", - "measuredH": "25", - "x": "17", - "y": "11", - "properties": { - "text": "Property Binding", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3048", - "typeID": "__group__", - "zOrder": "80", - "measuredW": "126", - "measuredH": "50", - "w": "126", - "h": "50", - "x": "701", - "y": "1742", - "properties": { - "controlName": "100-state-management:ngxs" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "126", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "46", - "measuredH": "25", - "x": "40", - "y": "12", - "properties": { - "text": "NGXS", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3049", - "typeID": "__group__", - "zOrder": "81", - "measuredW": "126", - "measuredH": "50", - "w": "126", - "h": "50", - "x": "701", - "y": "1799", - "properties": { - "controlName": "101-state-management:ngrx" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "126", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "48", - "measuredH": "25", - "x": "39", - "y": "12", - "properties": { - "size": "17", - "text": "NGRX" - } - } - ] - } - } - }, - { - "ID": "3050", - "typeID": "__group__", - "zOrder": "82", - "measuredW": "255", - "measuredH": "50", - "w": "255", - "h": "50", - "x": "232", - "y": "2138", - "properties": { - "controlName": "100-testing-angular-apps:testing-pipes" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "255", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "104", - "measuredH": "25", - "x": "76", - "y": "12", - "properties": { - "size": "17", - "text": "Testing Pipes" - } - } - ] - } - } - }, - { - "ID": "3051", - "typeID": "__group__", - "zOrder": "83", - "measuredW": "255", - "measuredH": "50", - "w": "255", - "h": "50", - "x": "232", - "y": "2193", - "properties": { - "controlName": "101-testing-angular-apps:testing-services" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "255", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "219", - "measuredH": "25", - "x": "18", - "y": "12", - "properties": { - "size": "17", - "text": "Services with Dependencies" - } - } - ] - } - } - }, - { - "ID": "3052", - "typeID": "__group__", - "zOrder": "84", - "measuredW": "576", - "measuredH": "105", - "w": "576", - "h": "105", - "x": "585", - "y": "2467", - "properties": { - "controlName": "ext_link:roadmap.sh/frontend" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "576", - "h": "105", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "502", - "measuredH": "32", - "x": "40", - "y": "22", - "properties": { - "size": "24", - "text": "Frontend Roadmap after Framework Selection" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "measuredW": "171", - "measuredH": "26", - "x": "205", - "y": "58", - "properties": { - "text": "roadmap.sh/frontend", - "size": "18", - "color": "10027263" - } - } - ] - } - } - }, - { - "ID": "3053", - "typeID": "__group__", - "zOrder": "85", - "measuredW": "243", - "measuredH": "50", - "w": "243", - "h": "50", - "x": "589", - "y": "950", - "properties": { - "controlName": "103-angular-cli" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "243", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "91", - "measuredH": "25", - "x": "76", - "y": "12", - "properties": { - "text": "Angular CLI", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3054", - "typeID": "Canvas", - "zOrder": "86", - "w": "253", - "h": "188", - "measuredW": "100", - "measuredH": "70", - "x": "231", - "y": "887" - }, - { - "ID": "3055", - "typeID": "__group__", - "zOrder": "87", - "measuredW": "123", - "measuredH": "50", - "w": "123", - "h": "50", - "x": "245", - "y": "901", - "properties": { - "controlName": "100-angular-cli:ng-build" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "123", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "61", - "measuredH": "25", - "x": "33", - "y": "12", - "properties": { - "text": "ng build", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3056", - "typeID": "__group__", - "zOrder": "88", - "measuredW": "94", - "measuredH": "50", - "w": "94", - "h": "50", - "x": "374", - "y": "901", - "properties": { - "controlName": "101-angular-cli:ng-serve" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "94", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "67", - "measuredH": "25", - "x": "16", - "y": "12", - "properties": { - "text": "ng serve", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3057", - "typeID": "__group__", - "zOrder": "89", - "measuredW": "123", - "measuredH": "50", - "w": "123", - "h": "50", - "x": "246", - "y": "956", - "properties": { - "controlName": "102-angular-cli:ng-generate" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "123", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "95", - "measuredH": "25", - "x": "17", - "y": "12", - "properties": { - "text": "ng generate", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3058", - "typeID": "__group__", - "zOrder": "90", - "measuredW": "94", - "measuredH": "50", - "w": "94", - "h": "50", - "x": "375", - "y": "956", - "properties": { - "controlName": "103-angular-cli:ng-test" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "94", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "53", - "measuredH": "25", - "x": "22", - "y": "12", - "properties": { - "text": "ng test", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3059", - "typeID": "__group__", - "zOrder": "91", - "measuredW": "145", - "measuredH": "50", - "w": "145", - "h": "50", - "x": "589", - "y": "849", - "properties": { - "controlName": "106-angular-cli:schematics" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "145", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "90", - "measuredH": "25", - "x": "28", - "y": "12", - "properties": { - "size": "17", - "text": "Schematics" - } - } - ] - } - } - }, - { - "ID": "3060", - "typeID": "__group__", - "zOrder": "92", - "measuredW": "123", - "measuredH": "49", - "w": "123", - "h": "49", - "x": "245", - "y": "1012", - "properties": { - "controlName": "104-angular-cli:ng-e2e" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "123", - "h": "49", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "55", - "measuredH": "25", - "x": "36", - "y": "12", - "properties": { - "text": "ng e2e", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3061", - "typeID": "__group__", - "zOrder": "93", - "measuredW": "94", - "measuredH": "49", - "w": "94", - "h": "49", - "x": "374", - "y": "1012", - "properties": { - "controlName": "105-angular-cli:ng-new" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "94", - "h": "49", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "56", - "measuredH": "25", - "x": "21", - "y": "12", - "properties": { - "text": "ng new", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3062", - "typeID": "__group__", - "zOrder": "94", - "measuredW": "222", - "measuredH": "274", - "w": "222", - "h": "274", - "x": "951", - "y": "577", - "properties": { - "controlName": "104-rxjs-basics:operators" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "222", - "h": "274", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "83", - "measuredH": "26", - "x": "59", - "y": "13", - "properties": { - "text": "Operators", - "size": "18" - } - } - ] - } - } - }, - { - "ID": "3063", - "typeID": "__group__", - "zOrder": "95", - "measuredW": "196", - "measuredH": "50", - "w": "196", - "h": "50", - "x": "965", - "y": "626", - "properties": { - "controlName": "100-rxjs-basics:operators:filtering" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "196", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "63", - "measuredH": "25", - "x": "70", - "y": "12", - "properties": { - "text": "Filtering", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3064", - "typeID": "__group__", - "zOrder": "96", - "measuredW": "195", - "measuredH": "50", - "w": "195", - "h": "50", - "x": "965", - "y": "680", - "properties": { - "controlName": "101-rxjs-basics:operators:rate-limiting" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "195", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "102", - "measuredH": "25", - "x": "51", - "y": "12", - "properties": { - "text": "Rate Limiting", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3065", - "typeID": "__group__", - "zOrder": "97", - "measuredW": "197", - "measuredH": "50", - "w": "197", - "h": "50", - "x": "964", - "y": "736", - "properties": { - "controlName": "102-rxjs-basics:operators:transformation" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "197", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "116", - "measuredH": "25", - "x": "45", - "y": "12", - "properties": { - "text": "Transformation", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3066", - "typeID": "__group__", - "zOrder": "98", - "measuredW": "197", - "measuredH": "50", - "w": "197", - "h": "50", - "x": "964", - "y": "791", - "properties": { - "controlName": "103-rxjs-basics:operators:combination" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "197", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "98", - "measuredH": "25", - "x": "54", - "y": "12", - "properties": { - "text": "Combination", - "size": "17" - } - } - ] - } - } - }, - { - "ID": "3067", - "typeID": "__group__", - "zOrder": "99", - "measuredW": "236", - "measuredH": "50", - "w": "236", - "h": "50", - "x": "925", - "y": "1064", - "properties": { - "controlName": "101-angular-basics:angular-components" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "236", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "99", - "measuredH": "25", - "x": "68", - "y": "12", - "properties": { - "size": "17", - "text": "Components" - } - } - ] - } - } - }, - { - "ID": "3068", - "typeID": "__group__", - "zOrder": "100", - "measuredW": "236", - "measuredH": "50", - "w": "236", - "h": "50", - "x": "925", - "y": "1118", - "properties": { - "controlName": "102-angular-basics:angular-templates" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "236", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "80", - "measuredH": "25", - "x": "78", - "y": "12", - "properties": { - "size": "17", - "text": "Templates" - } - } - ] - } - } - }, - { - "ID": "3069", - "typeID": "__group__", - "zOrder": "101", - "measuredW": "236", - "measuredH": "50", - "w": "236", - "h": "50", - "x": "925", - "y": "1173", - "properties": { - "controlName": "103-angular-basics:angular-modules" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "236", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "66", - "measuredH": "25", - "x": "85", - "y": "12", - "properties": { - "size": "17", - "text": "Modules" - } - } - ] - } - } - }, - { - "ID": "3070", - "typeID": "__group__", - "zOrder": "102", - "measuredW": "324", - "measuredH": "50", - "w": "324", - "h": "50", - "x": "231", - "y": "1160", - "properties": { - "controlName": "102-templates:template-statements" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "324", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "163", - "measuredH": "25", - "x": "80", - "y": "12", - "properties": { - "size": "17", - "text": "Template Statements" - } - } - ] - } - } - }, - { - "ID": "3071", - "typeID": "__group__", - "zOrder": "103", - "measuredW": "324", - "measuredH": "50", - "w": "324", - "h": "50", - "x": "231", - "y": "1216", - "properties": { - "controlName": "103-templates:binding-data-props-attrs-events" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "324", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "267", - "measuredH": "25", - "x": "19", - "y": "12", - "properties": { - "size": "17", - "text": "Binding (Data, Props, Attrs, Events)" - } - } - ] - } - } - }, - { - "ID": "3072", - "typeID": "__group__", - "zOrder": "104", - "measuredW": "154", - "measuredH": "50", - "w": "154", - "h": "50", - "x": "231", - "y": "1271", - "properties": { - "controlName": "104-templates:reference-vars" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "154", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "119", - "measuredH": "25", - "x": "17", - "y": "12", - "properties": { - "size": "17", - "text": "Reference Vars" - } - } - ] - } - } - }, - { - "ID": "3073", - "typeID": "__group__", - "zOrder": "105", - "measuredW": "164", - "measuredH": "50", - "w": "164", - "h": "50", - "x": "391", - "y": "1271", - "properties": { - "controlName": "105-templates:input-output" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "164", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "131", - "measuredH": "25", - "x": "18", - "y": "12", - "properties": { - "size": "17", - "text": "@Input, @Output" - } - } - ] - } - } - }, - { - "ID": "3074", - "typeID": "__group__", - "zOrder": "106", - "measuredW": "236", - "measuredH": "50", - "w": "236", - "h": "50", - "x": "925", - "y": "1228", - "properties": { - "controlName": "104-angular-basics:dependency-injection" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "236", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "168", - "measuredH": "25", - "x": "34", - "y": "12", - "properties": { - "size": "17", - "text": "Dependency Injection" - } - } - ] - } - } - }, - { - "ID": "3075", - "typeID": "__group__", - "zOrder": "107", - "measuredW": "236", - "measuredH": "50", - "w": "236", - "h": "50", - "x": "925", - "y": "1283", - "properties": { - "controlName": "105-angular-basics:services" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "236", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "67", - "measuredH": "25", - "x": "84", - "y": "12", - "properties": { - "size": "17", - "text": "Services" - } - } - ] - } - } - }, - { - "ID": "3076", - "typeID": "__group__", - "zOrder": "108", - "measuredW": "236", - "measuredH": "50", - "w": "236", - "h": "50", - "x": "925", - "y": "1339", - "properties": { - "controlName": "106-angular-basics:routing" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "236", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "60", - "measuredH": "25", - "x": "88", - "y": "12", - "properties": { - "size": "17", - "text": "Routing" - } - } - ] - } - } - }, - { - "ID": "3077", - "typeID": "__group__", - "zOrder": "109", - "measuredW": "186", - "measuredH": "50", - "w": "186", - "h": "50", - "x": "499", - "y": "1458", - "properties": { - "controlName": "105-rendering-topics" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "186", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "135", - "measuredH": "25", - "x": "25", - "y": "12", - "properties": { - "size": "17", - "text": "Rendering Topics" - } - } - ] - } - } - }, - { - "ID": "3078", - "typeID": "__group__", - "zOrder": "110", - "measuredW": "178", - "measuredH": "50", - "w": "178", - "h": "50", - "x": "231", - "y": "1354", - "properties": { - "controlName": "100-rendering-topics:builtin-directives" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "178", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "135", - "measuredH": "25", - "x": "21", - "y": "12", - "properties": { - "size": "17", - "text": "Built-in Directives" - } - } - ] - } - } - }, - { - "ID": "3079", - "typeID": "__group__", - "zOrder": "111", - "measuredW": "178", - "measuredH": "50", - "w": "178", - "h": "50", - "x": "231", - "y": "1409", - "properties": { - "controlName": "101-rendering-topics:builtin-pipes" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "178", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "102", - "measuredH": "25", - "x": "38", - "y": "12", - "properties": { - "size": "17", - "text": "Built-in Pipes" - } - } - ] - } - } - }, - { - "ID": "3080", - "typeID": "__group__", - "zOrder": "112", - "measuredW": "178", - "measuredH": "50", - "w": "178", - "h": "50", - "x": "231", - "y": "1463", - "properties": { - "controlName": "102-rendering-topics:change-detection" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "178", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "141", - "measuredH": "25", - "x": "18", - "y": "12", - "properties": { - "size": "17", - "text": "Change Detection" - } - } - ] - } - } - }, - { - "ID": "3081", - "typeID": "__group__", - "zOrder": "113", - "measuredW": "133", - "measuredH": "50", - "w": "133", - "h": "50", - "x": "755", - "y": "1458", - "properties": { - "controlName": "106-forms" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "133", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "48", - "measuredH": "25", - "x": "43", - "y": "12", - "properties": { - "size": "17", - "text": "Forms" - } - } - ] - } - } - }, - { - "ID": "3082", - "typeID": "__group__", - "zOrder": "114", - "measuredW": "212", - "measuredH": "50", - "w": "212", - "h": "50", - "x": "961", - "y": "1424", - "properties": { - "controlName": "100-forms:reactive-forms" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "212", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "120", - "measuredH": "25", - "x": "46", - "y": "12", - "properties": { - "size": "17", - "text": "Reactive Forms" - } - } - ] - } - } - }, - { - "ID": "3083", - "typeID": "__group__", - "zOrder": "115", - "measuredW": "212", - "measuredH": "50", - "w": "212", - "h": "50", - "x": "961", - "y": "1479", - "properties": { - "controlName": "101-forms:template-driven-forms" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "212", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "177", - "measuredH": "25", - "x": "17", - "y": "12", - "properties": { - "size": "17", - "text": "Template-driven Forms" - } - } - ] - } - } - }, - { - "ID": "3084", - "typeID": "__group__", - "zOrder": "116", - "measuredW": "186", - "measuredH": "50", - "w": "186", - "h": "50", - "x": "499", - "y": "1654", - "properties": { - "controlName": "107-routing" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "186", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "60", - "measuredH": "25", - "x": "63", - "y": "12", - "properties": { - "size": "17", - "text": "Routing" - } - } - ] - } - } - }, - { - "ID": "3085", - "typeID": "__group__", - "zOrder": "117", - "measuredW": "178", - "measuredH": "50", - "w": "178", - "h": "50", - "x": "503", - "y": "1550", - "properties": { - "controlName": "100-routing:configuration" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "178", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "103", - "measuredH": "25", - "x": "37", - "y": "12", - "properties": { - "size": "17", - "text": "Configuration" - } - } - ] - } - } - }, - { - "ID": "3086", - "typeID": "__group__", - "zOrder": "118", - "measuredW": "178", - "measuredH": "50", - "w": "178", - "h": "50", - "x": "231", - "y": "1559", - "properties": { - "controlName": "101-routing:router-outlets" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "178", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "113", - "measuredH": "25", - "x": "32", - "y": "12", - "properties": { - "size": "17", - "text": "Router Outlets" - } - } - ] - } - } - }, - { - "ID": "3087", - "typeID": "__group__", - "zOrder": "119", - "measuredW": "178", - "measuredH": "50", - "w": "178", - "h": "50", - "x": "231", - "y": "1669", - "properties": { - "controlName": "103-routing:router-events" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "178", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "110", - "measuredH": "25", - "x": "34", - "y": "12", - "properties": { - "size": "17", - "text": "Router Events" - } - } - ] - } - } - }, - { - "ID": "3088", - "typeID": "__group__", - "zOrder": "120", - "measuredW": "178", - "measuredH": "50", - "w": "178", - "h": "50", - "x": "231", - "y": "1614", - "properties": { - "controlName": "102-routing:router-links" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "178", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "98", - "measuredH": "25", - "x": "40", - "y": "12", - "properties": { - "size": "17", - "text": "Router Links" - } - } - ] - } - } - }, - { - "ID": "3089", - "typeID": "__group__", - "zOrder": "121", - "measuredW": "285", - "measuredH": "50", - "w": "285", - "h": "50", - "x": "888", - "y": "1665", - "properties": { - "controlName": "108-services-remote-data" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "285", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "207", - "measuredH": "25", - "x": "39", - "y": "12", - "properties": { - "size": "17", - "text": "Services and Remote Data" - } - } - ] - } - } - }, - { - "ID": "3090", - "typeID": "__group__", - "zOrder": "122", - "measuredW": "178", - "measuredH": "50", - "w": "178", - "h": "50", - "x": "231", - "y": "1725", - "properties": { - "controlName": "104-routing:guards" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "178", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "56", - "measuredH": "25", - "x": "61", - "y": "12", - "properties": { - "size": "17", - "text": "Guards" - } - } - ] - } - } - }, - { - "ID": "3091", - "typeID": "__group__", - "zOrder": "123", - "measuredW": "285", - "measuredH": "50", - "w": "285", - "h": "50", - "x": "888", - "y": "1719", - "properties": { - "controlName": "109-lifecycle-hooks" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "285", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "121", - "measuredH": "25", - "x": "82", - "y": "12", - "properties": { - "size": "17", - "text": "Lifecycle Hooks" - } - } - ] - } - } - }, - { - "ID": "3092", - "typeID": "__group__", - "zOrder": "124", - "measuredW": "212", - "measuredH": "50", - "w": "212", - "h": "50", - "x": "961", - "y": "1570", - "properties": { - "controlName": "100-services-remote-data:dependency-injection" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "212", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "168", - "measuredH": "25", - "x": "22", - "y": "12", - "properties": { - "size": "17", - "text": "Dependency Injection" - } - } - ] - } - } - }, - { - "ID": "3093", - "typeID": "__group__", - "zOrder": "125", - "measuredW": "154", - "measuredH": "50", - "w": "154", - "h": "50", - "x": "503", - "y": "1757", - "properties": { - "controlName": "105-routing:lazy-loading" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "154", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "100", - "measuredH": "25", - "x": "27", - "y": "12", - "properties": { - "size": "17", - "text": "Lazy Loading" - } - } - ] - } - } - }, - { - "ID": "3094", - "typeID": "__group__", - "zOrder": "126", - "measuredW": "126", - "measuredH": "50", - "w": "126", - "h": "50", - "x": "550", - "y": "1858", - "properties": { - "controlName": "111-zones" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "126", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "49", - "measuredH": "25", - "x": "38", - "y": "12", - "properties": { - "size": "17", - "text": "Zones" - } - } - ] - } - } - }, - { - "ID": "3095", - "typeID": "__group__", - "zOrder": "127", - "measuredW": "286", - "measuredH": "50", - "w": "286", - "h": "50", - "x": "887", - "y": "1773", - "properties": { - "controlName": "110-state-management" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "286", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "148", - "measuredH": "25", - "x": "69", - "y": "12", - "properties": { - "size": "17", - "text": "State Management" - } - } - ] - } - } - }, - { - "ID": "3096", - "typeID": "__group__", - "zOrder": "128", - "measuredW": "227", - "measuredH": "50", - "w": "227", - "h": "50", - "x": "231", - "y": "1857", - "properties": { - "controlName": "112-creating-a-custom-x" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "227", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "177", - "measuredH": "25", - "x": "23", - "y": "12", - "properties": { - "size": "17", - "text": "Creating a custom ___" - } - } - ] - } - } - }, - { - "ID": "3097", - "typeID": "__group__", - "zOrder": "129", - "measuredW": "121", - "measuredH": "50", - "w": "121", - "h": "50", - "x": "231", - "y": "1939", - "properties": { - "controlName": "100-creating-a-custom-x:directive" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "121", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "68", - "measuredH": "25", - "x": "27", - "y": "12", - "properties": { - "size": "17", - "text": "Directive" - } - } - ] - } - } - }, - { - "ID": "3098", - "typeID": "__group__", - "zOrder": "130", - "measuredW": "100", - "measuredH": "50", - "w": "100", - "h": "50", - "x": "358", - "y": "1939", - "properties": { - "controlName": "101-creating-a-custom-x:pipe" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "35", - "measuredH": "25", - "x": "32", - "y": "12", - "properties": { - "size": "17", - "text": "Pipe" - } - } - ] - } - } - }, - { - "ID": "3099", - "typeID": "__group__", - "zOrder": "131", - "measuredW": "227", - "measuredH": "50", - "w": "227", - "h": "50", - "x": "231", - "y": "1993", - "properties": { - "controlName": "102-creating-a-custom-x:library" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "227", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "53", - "measuredH": "25", - "x": "87", - "y": "12", - "properties": { - "size": "17", - "text": "Library" - } - } - ] - } - } - }, - { - "ID": "3100", - "typeID": "__group__", - "zOrder": "132", - "measuredW": "272", - "measuredH": "50", - "w": "272", - "h": "50", - "x": "598", - "y": "2215", - "properties": { - "controlName": "115-testing-angular-apps" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "272", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "162", - "measuredH": "25", - "x": "55", - "y": "12", - "properties": { - "size": "17", - "text": "Testing Angular Apps" - } - } - ] - } - } - }, - { - "ID": "3101", - "typeID": "__group__", - "zOrder": "133", - "measuredW": "255", - "measuredH": "50", - "w": "255", - "h": "50", - "x": "232", - "y": "2248", - "properties": { - "controlName": "102-testing-angular-apps:testing-component-bindings" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "255", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "162", - "measuredH": "25", - "x": "47", - "y": "12", - "properties": { - "size": "17", - "text": "Component Bindings" - } - } - ] - } - } - }, - { - "ID": "3102", - "typeID": "__group__", - "zOrder": "134", - "measuredW": "255", - "measuredH": "50", - "w": "255", - "h": "50", - "x": "232", - "y": "2303", - "properties": { - "controlName": "103-testing-angular-apps:testing-directives" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "255", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "137", - "measuredH": "25", - "x": "59", - "y": "12", - "properties": { - "size": "17", - "text": "Testing Directives" - } - } - ] - } - } - }, - { - "ID": "3103", - "typeID": "__group__", - "zOrder": "135", - "measuredW": "255", - "measuredH": "50", - "w": "255", - "h": "50", - "x": "232", - "y": "2358", - "properties": { - "controlName": "104-testing-angular-apps:testing-component-templates" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "255", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "174", - "measuredH": "25", - "x": "41", - "y": "12", - "properties": { - "size": "17", - "text": "Component Templates" - } - } - ] - } - } - }, - { - "ID": "3104", - "typeID": "__group__", - "zOrder": "136", - "measuredW": "271", - "measuredH": "50", - "w": "271", - "h": "50", - "x": "699", - "y": "2010", - "properties": { - "controlName": "114-angular-ssg" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "271", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "219", - "measuredH": "25", - "x": "30", - "y": "12", - "properties": { - "size": "17", - "text": "Static Site Generation (SSG)" - } - } - ] - } - } - }, - { - "ID": "3105", - "typeID": "__group__", - "zOrder": "137", - "measuredW": "272", - "measuredH": "50", - "w": "272", - "h": "50", - "x": "698", - "y": "1954", - "properties": { - "controlName": "113-angular-ssr" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "272", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "225", - "measuredH": "25", - "x": "23", - "y": "12", - "properties": { - "size": "17", - "text": "Server Side Rendering (SSR)" - } - } - ] - } - } - }, - { - "ID": "3106", - "typeID": "__group__", - "zOrder": "138", - "measuredW": "197", - "measuredH": "50", - "w": "197", - "h": "50", - "x": "1030", - "y": "1954", - "properties": { - "controlName": "100-angular-ssr:angular-universal" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "197", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "135", - "measuredH": "25", - "x": "36", - "y": "12", - "properties": { - "size": "17", - "text": "Angular Universal" - } - } - ] - } - } - }, - { - "ID": "3107", - "typeID": "__group__", - "zOrder": "139", - "measuredW": "197", - "measuredH": "50", - "w": "197", - "h": "50", - "x": "1030", - "y": "2010", - "properties": { - "controlName": "100-angular-ssg:scully" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "197", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "45", - "measuredH": "25", - "x": "76", - "y": "12", - "properties": { - "size": "17", - "text": "Scully" - } - } - ] - } - } - }, - { - "ID": "3108", - "typeID": "__group__", - "zOrder": "140", - "measuredW": "274", - "measuredH": "57", - "w": "274", - "h": "57", - "x": "587", - "y": "222", - "properties": { - "controlName": "ext_link:roadmap.sh/javascript" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "274", - "h": "57", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "borderColor": "4273622", - "color": "4273622" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "1", - "measuredW": "188", - "measuredH": "28", - "x": "43", - "y": "15", - "properties": { - "color": "16777215", - "size": "20", - "text": "JavaScript Roadmap" - } - } - ] - } - } - }, - { - "ID": "3109", - "typeID": "__group__", - "zOrder": "141", - "measuredW": "300", - "measuredH": "141", - "w": "300", - "h": "141", - "x": "230", - "y": "170", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "300", - "h": "141", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "__group__", - "zOrder": "1", - "measuredW": "151", - "measuredH": "25", - "w": "151", - "h": "25", - "x": "23", - "y": "62", - "properties": { - "controlName": "ext_link:roadmap.sh/react" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Label", - "zOrder": "0", - "measuredW": "118", - "measuredH": "24", - "x": "33", - "y": "0", - "properties": { - "size": "16", - "text": "React Roadmap" - } - }, - { - "ID": "1", - "typeID": "Icon", - "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "1", - "properties": { - "icon": { - "ID": "check-circle", - "size": "small" - }, - "color": "10066329" - } - } - ] - } - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "measuredW": "175", - "measuredH": "28", - "x": "25", - "y": "21", - "properties": { - "size": "20", - "text": "Related Roadmaps" - } - }, - { - "ID": "3", - "typeID": "__group__", - "zOrder": "3", - "measuredW": "136", - "measuredH": "25", - "w": "136", - "h": "25", - "x": "23", - "y": "95", - "properties": { - "controlName": "ext_link:roadmap.sh/vue" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Label", - "zOrder": "0", - "measuredW": "103", - "measuredH": "24", - "x": "33", - "y": "0", - "properties": { - "size": "16", - "text": "Vue Roadmap" - } - }, - { - "ID": "1", - "typeID": "Icon", - "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "1", - "properties": { - "icon": { - "ID": "check-circle", - "size": "small" - }, - "color": "10066329" - } - } - ] - } - } - } - ] - } - } - }, - { - "ID": "3110", - "typeID": "__group__", - "zOrder": "142", - "measuredW": "227", - "measuredH": "50", - "w": "227", - "h": "50", - "x": "230", - "y": "2046", - "properties": { - "controlName": "103-creating-a-custom-x:standalone-component" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "227", - "h": "50", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "182", - "measuredH": "25", - "x": "23", - "y": "12", - "properties": { - "size": "17", - "text": "Standalone Component" - } - } - ] - } - } + "nodes": [ + { + "width": 282, + "height": 383, + "id": "VBjI-LQstODfimbRlHUFi", + "type": "section", + "position": { + "x": -522.2433266387567, + "y": 49.22685449741584 + }, + "selected": false, + "data": { + "label": "", + "style": { + "width": 150, + "height": 100, + "fontSize": 17, + "backgroundColor": "#ffffff", + "borderColor": "#000000" + }, + "oldId": "TQT-lYCy59KN2BjwM_O8n" + }, + "zIndex": -999, + "style": { + "width": 282, + "height": 383 + }, + "positionAbsolute": { + "x": -522.2433266387567, + "y": 49.22685449741584 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "id": "wKEXcCpW_ydTDPzv_rS_w", + "type": "horizontal", + "position": { + "x": -146.2816601458129, + "y": 3187.43042937083 + }, + "selected": false, + "data": { + "label": "horizontal node", + "style": { + "stroke": "#2B78E4", + "strokeWidth": 3.75 } - ] + }, + "zIndex": 999, + "width": 395, + "height": 20, + "style": { + "width": 395, + "height": 20 + }, + "positionAbsolute": { + "x": -146.2816601458129, + "y": 3187.43042937083 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true }, - "attributes": { - "name": "New Wireframe 1 copy 8", - "order": 1000000.6428282561, - "parentID": null, - "notes": "" + { + "id": "FxFHWAkagS47Uce6_6T7d", + "type": "vertical", + "position": { + "x": 152.7183398541871, + "y": 2786.43042937083 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "nSq41MgDYtxGQXsWloS9I" + }, + "zIndex": 999, + "width": 20, + "height": 138, + "style": { + "width": 20, + "height": 138 + }, + "positionAbsolute": { + "x": 152.7183398541871, + "y": 2786.43042937083 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true }, - "branchID": "Master", - "resourceID": "960B5EDB-5533-4531-9B7D-06B4366EBEAE", - "mockupH": "2529", - "mockupW": "1030", - "measuredW": "1260", - "measuredH": "2659", - "version": "1.0" - }, - "groupOffset": { - "x": 0, - "y": 0 - }, - "dependencies": [], - "projectID": "file:///Users/kamrify/Desktop/New%20Roadmaps/Android%20Roadmap.bmpr" + { + "id": "nSq41MgDYtxGQXsWloS9I", + "type": "vertical", + "position": { + "x": 386.04484613528683, + "y": 2359.93042937083 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "a4cd_ND3vOLdmLuguKtBt" + }, + "zIndex": 999, + "width": 20, + "height": 95, + "style": { + "width": 20, + "height": 95 + }, + "positionAbsolute": { + "x": 386.04484613528683, + "y": 2359.93042937083 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "a4cd_ND3vOLdmLuguKtBt", + "type": "vertical", + "position": { + "x": 237.54484613528683, + "y": 2157.93042937083 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "GYH0wo-CeNtqVSGM7i3oS" + }, + "zIndex": 999, + "width": 20, + "height": 1040, + "style": { + "width": 20, + "height": 1040 + }, + "positionAbsolute": { + "x": 237.54484613528683, + "y": 2157.93042937083 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "GYH0wo-CeNtqVSGM7i3oS", + "type": "vertical", + "position": { + "x": -5.45968546864998, + "y": 2132.43042937083 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "nyJvnCmX-pC35SbkRPXko" + }, + "zIndex": 999, + "width": 20, + "height": 124, + "style": { + "width": 20, + "height": 124 + }, + "positionAbsolute": { + "x": -5.45968546864998, + "y": 2132.43042937083 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "rikJUpXHGXAEC74Szwj7s", + "type": "section", + "position": { + "x": -68.13327447982533, + "y": 2260.93042937083 + }, + "width": 277, + "height": 249, + "style": { + "width": 277, + "height": 249 + }, + "selected": false, + "data": { + "style": { + "backgroundColor": "#ffffff", + "borderColor": "#000000" + } + }, + "positionAbsolute": { + "x": -68.13327447982533, + "y": 2260.93042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "ol_HobKV3LkBYvgVYWoGB", + "type": "section", + "position": { + "x": -301.13327447982533, + "y": 2260.93042937083 + }, + "width": 237, + "height": 196, + "style": { + "width": 237, + "height": 195.5 + }, + "selected": false, + "data": { + "style": { + "backgroundColor": "#ffffff", + "borderColor": "#000000" + } + }, + "positionAbsolute": { + "x": -301.13327447982533, + "y": 2260.93042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "nyJvnCmX-pC35SbkRPXko", + "type": "vertical", + "position": { + "x": -346.3084777160734, + "y": 1890.43042937083 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "762b06M2GaxTGG_SXG-6g" + }, + "zIndex": 999, + "width": 20, + "height": 83, + "style": { + "width": 20, + "height": 83 + }, + "positionAbsolute": { + "x": -346.3084777160734, + "y": 1890.43042937083 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "dnM44vvHZW3dSpsVi546w", + "type": "section", + "position": { + "x": -301.63327447982533, + "y": 2072.43042937083 + }, + "width": 204, + "height": 143, + "style": { + "width": 204, + "height": 142.5 + }, + "selected": false, + "data": {}, + "positionAbsolute": { + "x": -301.63327447982533, + "y": 2072.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "1OFkZp8kqo_f_pTrDqNoe", + "type": "section", + "position": { + "x": -519.1332744798253, + "y": 1963.93042937083 + }, + "width": 209, + "height": 408, + "style": { + "width": 209, + "height": 407.5 + }, + "selected": false, + "data": {}, + "positionAbsolute": { + "x": -519.1332744798253, + "y": 1963.93042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "wPj4IMCob1P-xw4HiARuO", + "type": "vertical", + "position": { + "x": -346.3084777160734, + "y": 1668.2304293708294 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "762b06M2GaxTGG_SXG-6g" + }, + "zIndex": 999, + "width": 20, + "height": 186, + "style": { + "width": 20, + "height": 186 + }, + "positionAbsolute": { + "x": -346.3084777160734, + "y": 1668.2304293708294 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "762b06M2GaxTGG_SXG-6g", + "type": "vertical", + "position": { + "x": -348.5993272119424, + "y": 1587.93042937083 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "rBi1Oj1pqcnIy5yMMxLyw" + }, + "zIndex": 999, + "width": 20, + "height": 83, + "style": { + "width": 20, + "height": 83 + }, + "positionAbsolute": { + "x": -348.5993272119424, + "y": 1587.93042937083 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "FG7ABEX-nhrwCDpoKwdcm", + "type": "vertical", + "position": { + "x": 20.86672552017467, + "y": 1668.2304293708294 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "3JUwGWiqWXqAZj8Lw8Gbm" + }, + "zIndex": 999, + "width": 20, + "height": 96, + "style": { + "width": 20, + "height": 96 + }, + "positionAbsolute": { + "x": 20.86672552017467, + "y": 1668.2304293708294 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "3JUwGWiqWXqAZj8Lw8Gbm", + "type": "vertical", + "position": { + "x": -54.743326638756685, + "y": 1668.2304293708294 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "rBi1Oj1pqcnIy5yMMxLyw" + }, + "zIndex": 999, + "width": 20, + "height": 96, + "style": { + "width": 20, + "height": 96 + }, + "positionAbsolute": { + "x": -54.743326638756685, + "y": 1668.2304293708294 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "rBi1Oj1pqcnIy5yMMxLyw", + "type": "vertical", + "position": { + "x": -123.95968546864992, + "y": 1668.2304293708294 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "rWLm26RwXHFpQhglgrfuV" + }, + "zIndex": 999, + "width": 20, + "height": 96, + "style": { + "width": 20, + "height": 96 + }, + "positionAbsolute": { + "x": -123.95968546864992, + "y": 1668.2304293708294 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "rWLm26RwXHFpQhglgrfuV", + "type": "vertical", + "position": { + "x": 193.04484613528683, + "y": 1668.2304293708294 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 20, + "height": 96, + "style": { + "width": 20, + "height": 96 + }, + "positionAbsolute": { + "x": 193.04484613528683, + "y": 1668.2304293708294 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "vcAUSj5KcbBngENQMoClO", + "type": "vertical", + "position": { + "x": 193.04484613528683, + "y": 1466.2304293708294 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "stroke": "#2B78E4", + "strokeWidth": 3.5 + } + }, + "zIndex": 999, + "width": 20, + "height": 202, + "style": { + "width": 20, + "height": 202 + }, + "positionAbsolute": { + "x": 193.04484613528683, + "y": 1466.2304293708294 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "Ew6DgOvx6gtifE9v4YPkP", + "type": "section", + "position": { + "x": 324.86672552017467, + "y": 1719.43042937083 + }, + "width": 210, + "height": 249, + "style": { + "width": 210, + "height": 249 + }, + "selected": false, + "data": { + "style": { + "backgroundColor": "#ffffff", + "borderColor": "#000000" + } + }, + "positionAbsolute": { + "x": 324.86672552017467, + "y": 1719.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "mXjsmjZhHgpTL8oeDQext", + "type": "vertical", + "position": { + "x": -366.3084777160734, + "y": 1278.2304293708294 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "kW2pkUmw72aKIjGbizdmG" + }, + "zIndex": 999, + "width": 20, + "height": 188, + "style": { + "width": 20, + "height": 188 + }, + "positionAbsolute": { + "x": -366.3084777160734, + "y": 1278.2304293708294 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "kW2pkUmw72aKIjGbizdmG", + "type": "vertical", + "position": { + "x": 352.54484613528683, + "y": 1097.2304293708296 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "DNz-gFjc4Ow3TL_EY_NAH" + }, + "zIndex": 999, + "width": 20, + "height": 188, + "style": { + "width": 20, + "height": 188 + }, + "positionAbsolute": { + "x": 352.54484613528683, + "y": 1097.2304293708296 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "DNz-gFjc4Ow3TL_EY_NAH", + "type": "vertical", + "position": { + "x": 351.3414717224867, + "y": 817.2304293708296 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 20, + "height": 92, + "style": { + "width": 20, + "height": 92 + }, + "positionAbsolute": { + "x": 351.3414717224867, + "y": 817.2304293708296 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "gbSGghXE--4z479PIE57p", + "type": "vertical", + "position": { + "x": 421.25667336124326, + "y": 454.7304293708296 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 20, + "height": 62, + "style": { + "width": 20, + "height": 62 + }, + "positionAbsolute": { + "x": 421.25667336124326, + "y": 454.7304293708296 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "xVapQFT9sTIPdeCXYD_lw", + "type": "horizontal", + "position": { + "x": -145.63327447982533, + "y": 753.7304293708296 + }, + "selected": false, + "data": { + "label": "horizontal node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "YlxsmpEKCKm2_jXHT5fux" + }, + "zIndex": 999, + "width": 52, + "height": 20, + "style": { + "width": 52, + "height": 20 + }, + "positionAbsolute": { + "x": -145.63327447982533, + "y": 753.7304293708296 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "YlxsmpEKCKm2_jXHT5fux", + "type": "horizontal", + "position": { + "x": 129.04484613528683, + "y": 618.7304293708296 + }, + "selected": false, + "data": { + "label": "horizontal node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "N3xAkfwQ-q0f_JEjKDQcO" + }, + "zIndex": 999, + "width": 257, + "height": 20, + "style": { + "width": 257, + "height": 20 + }, + "positionAbsolute": { + "x": 129.04484613528683, + "y": 618.7304293708296 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "CshWtCCFHbYXtztr-2iU1", + "type": "section", + "position": { + "x": -340.63327447982533, + "y": 765.2304293708296 + }, + "width": 203, + "height": 296, + "style": { + "width": 203, + "height": 296 + }, + "selected": false, + "data": { + "style": { + "backgroundColor": "#ffffff", + "borderColor": "#000000" + } + }, + "positionAbsolute": { + "x": -340.63327447982533, + "y": 765.2304293708296 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "FTLS0mwJhuqsEHen7mqbk", + "type": "section", + "position": { + "x": -522.2433266387567, + "y": 763.7304293708296 + }, + "width": 184, + "height": 298, + "style": { + "width": 184, + "height": 298 + }, + "selected": false, + "data": { + "style": { + "backgroundColor": "#ffffff", + "borderColor": "#000000" + } + }, + "positionAbsolute": { + "x": -522.2433266387567, + "y": 763.7304293708296 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "t6zZwKzPHXT57Uqj4R2aI", + "type": "section", + "position": { + "x": -99.73327447982547, + "y": 596.7304293708296 + }, + "width": 225, + "height": 302, + "style": { + "width": 225, + "height": 302 + }, + "selected": false, + "data": {}, + "positionAbsolute": { + "x": -99.73327447982547, + "y": 596.7304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "N3xAkfwQ-q0f_JEjKDQcO", + "type": "horizontal", + "position": { + "x": -238.74332663875668, + "y": 355.7304293708296 + }, + "selected": false, + "data": { + "label": "horizontal node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 184, + "height": 20, + "style": { + "width": 184, + "height": 20 + }, + "positionAbsolute": { + "x": -238.74332663875668, + "y": 355.7304293708296 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "HLnq8xMeb0NwnkVUtcFMj", + "type": "section", + "position": { + "x": -521.7433266387567, + "y": 480.2304293708296 + }, + "selected": false, + "data": { + "label": "", + "style": { + "width": 150, + "height": 100, + "fontSize": 17, + "backgroundColor": "#ffffff", + "borderColor": "#000000" + } + }, + "zIndex": -999, + "width": 283, + "height": 124, + "style": { + "width": 283, + "height": 124 + }, + "positionAbsolute": { + "x": -521.7433266387567, + "y": 480.2304293708296 + }, + "selectable": true, + "focusable": true, + "dragging": false, + "resizing": false + }, + { + "width": 137, + "height": 68, + "id": "iogwMmOvub2ZF4zgg6WyF", + "type": "title", + "position": { + "x": -61.45968546864998, + "y": -160.28400721142515 + }, + "selected": false, + "data": { + "label": "Angular", + "style": { + "fontSize": 28, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "9nxw2PEl-_eQPW0FHNPq2" + }, + "zIndex": 999, + "dragging": false, + "positionAbsolute": { + "x": -61.45968546864998, + "y": -160.28400721142515 + }, + "focusable": true, + "selectable": true + }, + { + "width": 20, + "height": 76, + "id": "LEijbLyxg4RyutKEM2Y5g", + "type": "vertical", + "position": { + "x": -2.9596854686499796, + "y": -230.76957062917046 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#0A33FF" + }, + "oldId": "xD07fJ1NmNeAarVCEfubU" + }, + "zIndex": 999, + "positionAbsolute": { + "x": -2.9596854686499796, + "y": -230.76957062917046 + }, + "dragging": false, + "focusable": true, + "style": { + "width": 20, + "height": 76 + }, + "resizing": false, + "selectable": true + }, + { + "id": "yHmHXymPNWwu8p1vvqD3o", + "type": "paragraph", + "position": { + "x": 179.8414717224867, + "y": -232.76957062917046 + }, + "selected": false, + "data": { + "label": "Find the detailed version of this roadmap along with other similar roadmaps", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "left", + "borderColor": "#000000", + "backgroundColor": "#FFFFFf" + } + }, + "zIndex": 999, + "width": 363, + "height": 143, + "positionAbsolute": { + "x": 179.8414717224867, + "y": -232.76957062917046 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "style": { + "width": 363, + "height": 143 + }, + "resizing": false + }, + { + "id": "R_Fs6rdl2XtQ9aLOubMqL", + "type": "button", + "position": { + "x": 193.04484613528683, + "y": -150.78400721142515 + }, + "selected": false, + "data": { + "label": "roadmap.sh", + "href": "https://roadmap.sh", + "color": "#ffffff", + "backgroundColor": "#4136D6", + "style": { + "fontSize": 17 + }, + "oldId": "2zqZkyVgigifcRS1H7F_b" + }, + "zIndex": 999, + "width": 339, + "height": 49, + "dragging": false, + "style": { + "width": 339, + "height": 49 + }, + "resizing": false, + "positionAbsolute": { + "x": 193.04484613528683, + "y": -150.78400721142515 + }, + "selectable": true, + "focusable": true + }, + { + "id": "xwpc_KxehAruFM0pCQnie", + "type": "vertical", + "position": { + "x": -247.16916540260297, + "y": 3405.6464601414127 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#4136D4" + }, + "oldId": "Ju00mr0KLGN2BV6yEQGPt" + }, + "zIndex": 999, + "width": 20, + "height": 104, + "positionAbsolute": { + "x": -247.16916540260297, + "y": 3405.6464601414127 + }, + "dragging": false, + "style": { + "width": 20, + "height": 104 + }, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "width": 562, + "height": 119, + "id": "GV_zWF6rSWg5bqgiXhOEf", + "type": "paragraph", + "position": { + "x": -518.169165402603, + "y": 3315.130494860985 + }, + "selected": false, + "data": { + "label": "Have a look at the following related roadmaps", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "borderColor": "#000000", + "backgroundColor": "#ffffff" + }, + "oldId": "sVXZrBCsiSzWBBYWTm-nQ" + }, + "zIndex": 999, + "positionAbsolute": { + "x": -518.169165402603, + "y": 3315.130494860985 + }, + "dragging": false, + "style": { + "width": 562, + "height": 119 + }, + "resizing": false, + "focusable": true, + "selectable": true + }, + { + "width": 126, + "height": 49, + "id": "ZSrQoNGKiR484uALMWO9F", + "type": "button", + "position": { + "x": -199.49114007976596, + "y": 3373.8197767726365 + }, + "selected": false, + "data": { + "label": "TypeScript", + "href": "https://roadmap.sh/typescript", + "color": "#FFFFFf", + "backgroundColor": "#4136D4", + "style": { + "fontSize": 17 + }, + "borderColor": "#4136D4", + "oldId": "dlGf3ZdFXYx0Z6Viu2x-l" + }, + "zIndex": 999, + "dragging": false, + "positionAbsolute": { + "x": -199.49114007976596, + "y": 3373.8197767726365 + }, + "style": {}, + "focusable": true, + "resizing": false, + "selectable": true + }, + { + "width": 115, + "height": 49, + "id": "P5IZjP0g1_fnvHy3YTR4q", + "type": "button", + "position": { + "x": -506.49114007976596, + "y": 3373.8197767726365 + }, + "selected": false, + "data": { + "label": "Frontend", + "href": "https://roadm.sh/frontend", + "color": "#FFFFFf", + "backgroundColor": "#4136D4", + "style": { + "fontSize": 17 + }, + "borderColor": "#4136D4", + "oldId": "dlGf3ZdFXYx0Z6Viu2x-l" + }, + "zIndex": 999, + "dragging": false, + "positionAbsolute": { + "x": -506.49114007976596, + "y": 3373.8197767726365 + }, + "style": {}, + "focusable": true, + "resizing": false, + "selectable": true + }, + { + "id": "YD5y17K5nqmWaBwYcufZO", + "type": "legend", + "position": { + "x": -522.3080206821377, + "y": -232.76957062917046 + }, + "selected": false, + "data": { + "label": "", + "legends": [ + { + "id": "NEZQB0yHPCcKwsESDYbk5", + "color": "#38761d", + "label": "Beginner Topics / start with these" + }, + { + "id": "bcE9YSY2vLzRyJQSceY9M", + "label": "Intermediate Topics / pick these next", + "color": "#9900ff" + }, + { + "id": "iRlgVcCk54BVDA-Rx0kt8", + "label": "Advanced Topics / pick these at last", + "color": "#000" + } + ] + }, + "zIndex": 999, + "width": 348, + "height": 124, + "positionAbsolute": { + "x": -522.3080206821377, + "y": -232.76957062917046 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "width": 91, + "height": 49, + "id": "U0fJo2a3vnaodNJhfZ78I", + "type": "button", + "position": { + "x": -387.49114007976596, + "y": 3373.8197767726365 + }, + "selected": false, + "data": { + "label": "React", + "href": "https://roadm.sh/react", + "color": "#FFFFFf", + "backgroundColor": "#4136D4", + "style": { + "fontSize": 17 + }, + "borderColor": "#4136D4", + "oldId": "P5IZjP0g1_fnvHy3YTR4q" + }, + "zIndex": 999, + "dragging": false, + "positionAbsolute": { + "x": -387.49114007976596, + "y": 3373.8197767726365 + }, + "style": {}, + "focusable": true, + "resizing": false, + "selectable": true + }, + { + "width": 102, + "height": 49, + "id": "iuSv7V59YxUZawN38Qlli", + "type": "button", + "position": { + "x": -69.49114007976596, + "y": 3373.8197767726365 + }, + "selected": false, + "data": { + "label": "Node.js", + "href": "https://roadmap.sh/nodejs", + "color": "#FFFFFf", + "backgroundColor": "#4136D4", + "style": { + "fontSize": 17 + }, + "borderColor": "#4136D4", + "oldId": "ZSrQoNGKiR484uALMWO9F" + }, + "zIndex": 999, + "dragging": false, + "positionAbsolute": { + "x": -69.49114007976596, + "y": 3373.8197767726365 + }, + "style": {}, + "focusable": true, + "resizing": false, + "selectable": true + }, + { + "id": "DAwKHBng7Tytlcd2_8GOR", + "type": "button", + "position": { + "x": -112.95968546864998, + "y": -32.78400721142515 + }, + "selected": false, + "data": { + "label": "JavaScript Roadmap", + "href": "https://roadmap.sh/javascript", + "color": "#ffffff", + "backgroundColor": "#4136D6", + "style": { + "fontSize": 17 + }, + "oldId": "R_Fs6rdl2XtQ9aLOubMqL" + }, + "zIndex": 999, + "width": 240, + "height": 49, + "dragging": false, + "style": { + "width": 240, + "height": 49 + }, + "resizing": false, + "positionAbsolute": { + "x": -112.95968546864998, + "y": -32.78400721142515 + }, + "selectable": true, + "focusable": true + }, + { + "id": "KDd40JOAvZ8O1mfhTYB3K", + "type": "topic", + "position": { + "x": -112.95968546864998, + "y": 67.7304293708296 + }, + "selected": false, + "data": { + "label": "Introduction to Angular", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 240, + "height": 49, + "style": { + "width": 240, + "height": 49 + }, + "positionAbsolute": { + "x": -112.95968546864998, + "y": 67.7304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "DE3cMpeRYuUPw2ADtfS-3", + "type": "subtopic", + "position": { + "x": 271.2566733612433, + "y": 67.21599278857485 + }, + "selected": false, + "data": { + "label": "Angular Architecture", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 266, + "height": 49, + "style": { + "width": 266, + "height": 49 + }, + "positionAbsolute": { + "x": 271.2566733612433, + "y": 67.21599278857485 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "EbFRcy4s6yzzIApBqU77Y", + "type": "subtopic", + "position": { + "x": 271.2566733612433, + "y": 120.21599278857485 + }, + "selected": false, + "data": { + "label": "Setting up a New Project", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 266, + "height": 49, + "style": { + "width": 266, + "height": 49 + }, + "positionAbsolute": { + "x": 271.2566733612433, + "y": 120.21599278857485 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "hpShWwL0M57ZAzqkB4I8t", + "type": "subtopic", + "position": { + "x": 271.2566733612433, + "y": 14.215992788574852 + }, + "selected": false, + "data": { + "label": "Angular and History", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "DE3cMpeRYuUPw2ADtfS-3" + }, + "zIndex": 999, + "width": 266, + "height": 49, + "style": { + "width": 266, + "height": 49 + }, + "positionAbsolute": { + "x": 271.2566733612433, + "y": 14.215992788574852 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "zv1y-I1fIEXtTkb8tOQU0", + "type": "button", + "position": { + "x": -112.95968546864998, + "y": 198.21599278857485 + }, + "selected": false, + "data": { + "label": "Learn TypeScript Basics", + "href": "https://roadmap.sh/typescript", + "color": "#ffffff", + "backgroundColor": "#4136D6", + "style": { + "fontSize": 17 + }, + "oldId": "DAwKHBng7Tytlcd2_8GOR" + }, + "zIndex": 999, + "width": 240, + "height": 49, + "dragging": false, + "style": { + "width": 240, + "height": 49 + }, + "resizing": false, + "positionAbsolute": { + "x": -112.95968546864998, + "y": 198.21599278857485 + }, + "selectable": true, + "focusable": true + }, + { + "id": "kGnKzCkQCNFEdgCBRtNuW", + "type": "topic", + "position": { + "x": -112.95968546864998, + "y": 341.2304293708296 + }, + "selected": false, + "data": { + "label": "Components", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 240, + "height": 49, + "style": { + "width": 240, + "height": 49 + }, + "positionAbsolute": { + "x": -112.95968546864998, + "y": 341.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "Mp056kNnwsRWeEXuhGPy-", + "type": "subtopic", + "position": { + "x": -521.2433266387567, + "y": -60.284007211425205 + }, + "selected": false, + "data": { + "label": "Component Anatomy", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 281, + "height": 49, + "style": { + "width": 281, + "height": 49 + }, + "dragging": false, + "positionAbsolute": { + "x": -521.2433266387567, + "y": -60.284007211425205 + }, + "selectable": true, + "focusable": true + }, + { + "id": "dOMvz__EQjO-3p-Nzm-7P", + "type": "subtopic", + "position": { + "x": -379.3084777160734, + "y": 213.47156717238613 + }, + "selected": false, + "data": { + "label": "Provider", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 131, + "height": 49, + "positionAbsolute": { + "x": -379.3084777160734, + "y": 213.47156717238613 + }, + "dragging": false, + "style": { + "width": 131 + }, + "selectable": true, + "focusable": true + }, + { + "id": "uYHy2yhtTm6fQkKpYx3lU", + "type": "subtopic", + "position": { + "x": -514.5993272119424, + "y": 374.9715671723861 + }, + "selected": false, + "data": { + "label": "changeDetection", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "A5hlIbsEqnos4BLSDHKoH" + }, + "zIndex": 999, + "width": 267, + "height": 49, + "positionAbsolute": { + "x": -514.5993272119424, + "y": 374.9715671723861 + }, + "dragging": false, + "style": { + "width": 267, + "height": 49 + }, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "-gUpm3OLUJl9iAyx6fmHN", + "type": "subtopic", + "position": { + "x": -379.3084777160734, + "y": 108.47156717238613 + }, + "selected": false, + "data": { + "label": "Template", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "uYHy2yhtTm6fQkKpYx3lU" + }, + "zIndex": 999, + "width": 131, + "height": 49, + "positionAbsolute": { + "x": -379.3084777160734, + "y": 108.47156717238613 + }, + "dragging": false, + "style": { + "width": 131 + }, + "selectable": true, + "focusable": true + }, + { + "id": "RcNHEh6kmbBK1PICbhAwr", + "type": "subtopic", + "position": { + "x": -379.3084777160734, + "y": 160.97156717238613 + }, + "selected": false, + "data": { + "label": "Standalone", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "-gUpm3OLUJl9iAyx6fmHN" + }, + "zIndex": 999, + "width": 131, + "height": 49, + "positionAbsolute": { + "x": -379.3084777160734, + "y": 160.97156717238613 + }, + "dragging": false, + "style": { + "width": 131 + }, + "selectable": true, + "focusable": true + }, + { + "id": "doHDoAgp7T59KGSXPpQzZ", + "type": "subtopic", + "position": { + "x": -514.5993272119424, + "y": 265.9715671723861 + }, + "selected": false, + "data": { + "label": "viewProvider", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "dOMvz__EQjO-3p-Nzm-7P" + }, + "zIndex": 999, + "width": 267, + "height": 52, + "positionAbsolute": { + "x": -514.5993272119424, + "y": 265.9715671723861 + }, + "dragging": false, + "style": { + "width": 267, + "height": 52 + }, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "ctigvSYeFa77y3v7m11gk", + "type": "subtopic", + "position": { + "x": -513.5993272119424, + "y": 321.4715671723861 + }, + "selected": false, + "data": { + "label": "Encapsulation", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "uYHy2yhtTm6fQkKpYx3lU" + }, + "zIndex": 999, + "width": 266, + "height": 50, + "positionAbsolute": { + "x": -513.5993272119424, + "y": 321.4715671723861 + }, + "dragging": false, + "style": { + "width": 266, + "height": 50 + }, + "selectable": true, + "focusable": true, + "resizing": true + }, + { + "id": "cDN0PGo-zkcLmttxCiAI-", + "type": "subtopic", + "position": { + "x": -514.5993272119424, + "y": 108.47156717238613 + }, + "selected": false, + "data": { + "label": "Selector", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "gk9iXF7bHhf_HCpSLdY42" + }, + "zIndex": 999, + "width": 131, + "height": 49, + "positionAbsolute": { + "x": -514.5993272119424, + "y": 108.47156717238613 + }, + "dragging": false, + "style": { + "width": 131 + }, + "selectable": true, + "focusable": true + }, + { + "id": "4XJKEmSrQfPxggHlAP30w", + "type": "subtopic", + "position": { + "x": -514.5993272119424, + "y": 160.97156717238613 + }, + "selected": false, + "data": { + "label": "Styles", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "-gUpm3OLUJl9iAyx6fmHN" + }, + "zIndex": 999, + "width": 131, + "height": 49, + "positionAbsolute": { + "x": -514.5993272119424, + "y": 160.97156717238613 + }, + "dragging": false, + "style": { + "width": 131 + }, + "selectable": true, + "focusable": true + }, + { + "id": "ghbrJhuGvscnNGCtVLh5_", + "type": "subtopic", + "position": { + "x": -514.5993272119424, + "y": 213.47156717238613 + }, + "selected": false, + "data": { + "label": "Imports", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "RcNHEh6kmbBK1PICbhAwr" + }, + "zIndex": 999, + "width": 131, + "height": 49, + "positionAbsolute": { + "x": -514.5993272119424, + "y": 213.47156717238613 + }, + "dragging": false, + "style": { + "width": 131 + }, + "selectable": true, + "focusable": true + }, + { + "id": "Szgr8dnZNi-z5i6raIJzW", + "type": "subtopic", + "position": { + "x": -522.2433266387567, + "y": 48.47156717238613 + }, + "selected": false, + "data": { + "label": "Metadata", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + }, + "oldId": "doHDoAgp7T59KGSXPpQzZ" + }, + "zIndex": 999, + "width": 282, + "height": 55, + "positionAbsolute": { + "x": -522.2433266387567, + "y": 48.47156717238613 + }, + "dragging": false, + "style": { + "width": 282, + "height": 55 + }, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "19c7D-fWIJ3vYFT6h8ZfN", + "type": "topic", + "position": { + "x": -521.7433266387567, + "y": 439.2304293708296 + }, + "selected": false, + "data": { + "label": "Communication", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 283, + "height": 49, + "style": { + "width": 283, + "height": 49 + }, + "positionAbsolute": { + "x": -521.7433266387567, + "y": 439.2304293708296 + }, + "selectable": true, + "focusable": true, + "dragging": false + }, + { + "id": "TDyFjKrIZJnCjEZsojPNQ", + "type": "subtopic", + "position": { + "x": -513.5993272119424, + "y": 494.2304293708296 + }, + "selected": false, + "data": { + "label": "Parent-Child Interaction", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 267, + "height": 49, + "style": { + "width": 267, + "height": 49 + }, + "positionAbsolute": { + "x": -513.5993272119424, + "y": 494.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "v0XaLNZ-YrRqP-xv8wS43", + "type": "subtopic", + "position": { + "x": -513.5993272119424, + "y": 546.7304293708296 + }, + "selected": false, + "data": { + "label": "ViewChild", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 120, + "height": 49, + "style": {}, + "positionAbsolute": { + "x": -513.5993272119424, + "y": 546.7304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "oQl9etjoHiU2JgxieUOEH", + "type": "subtopic", + "position": { + "x": -390.5993272119424, + "y": 546.7304293708296 + }, + "selected": false, + "data": { + "label": "ContentChild", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 145, + "height": 49, + "style": { + "width": 145, + "height": 49 + }, + "positionAbsolute": { + "x": -390.5993272119424, + "y": 546.7304293708296 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "nCpfj_35ZvW-NTygg06XZ", + "type": "subtopic", + "position": { + "x": -521.7433266387567, + "y": 609.2304293708296 + }, + "selected": false, + "data": { + "label": "Component Lifecycle", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "Mp056kNnwsRWeEXuhGPy-" + }, + "zIndex": 999, + "width": 283, + "height": 49, + "style": { + "width": 283, + "height": 49 + }, + "dragging": false, + "positionAbsolute": { + "x": -521.7433266387567, + "y": 609.2304293708296 + }, + "selectable": true, + "focusable": true + }, + { + "id": "tC5ETtOuuUcybj1jI4CuG", + "type": "subtopic", + "position": { + "x": -523.7433266387567, + "y": 661.2304293708296 + }, + "selected": false, + "data": { + "label": "Dynamic Components", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "nCpfj_35ZvW-NTygg06XZ" + }, + "zIndex": 999, + "width": 283, + "height": 49, + "style": { + "width": 283, + "height": 49 + }, + "dragging": false, + "positionAbsolute": { + "x": -523.7433266387567, + "y": 661.2304293708296 + }, + "selectable": true, + "focusable": true + }, + { + "id": "b_kdNS9PDupcUftslkf9i", + "type": "topic", + "position": { + "x": 332.25667336124326, + "y": 512.7304293708296 + }, + "selected": false, + "data": { + "label": "Modules", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 198, + "height": 49, + "style": { + "width": 198, + "height": 49 + }, + "resizing": false, + "positionAbsolute": { + "x": 332.25667336124326, + "y": 512.7304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "BCq5sgWQLiw0f7u7ZSAd2", + "type": "subtopic", + "position": { + "x": 297.54484613528683, + "y": 198.21599278857485 + }, + "selected": false, + "data": { + "label": "Module Architecture", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 234, + "height": 49, + "style": { + "width": 234, + "height": 49 + }, + "positionAbsolute": { + "x": 297.54484613528683, + "y": 198.21599278857485 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "ex8FOKrUlbu4MuEq2czyW", + "type": "subtopic", + "position": { + "x": -521.2433266387567, + "y": -7.284007211425205 + }, + "selected": false, + "data": { + "label": "Creating Components", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "Mp056kNnwsRWeEXuhGPy-" + }, + "zIndex": 999, + "width": 281, + "height": 49, + "style": { + "width": 281, + "height": 49 + }, + "dragging": false, + "positionAbsolute": { + "x": -521.2433266387567, + "y": -7.284007211425205 + }, + "selectable": true, + "focusable": true + }, + { + "id": "9YhTXybJw2gszlqFeBtW3", + "type": "subtopic", + "position": { + "x": 297.54484613528683, + "y": 251.21599278857485 + }, + "selected": false, + "data": { + "label": "Creating Modules", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "BCq5sgWQLiw0f7u7ZSAd2" + }, + "zIndex": 999, + "width": 234, + "height": 49, + "style": { + "width": 234, + "height": 49 + }, + "positionAbsolute": { + "x": 297.54484613528683, + "y": 251.21599278857485 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "w_BazXvINFyxDCHmlznfy", + "type": "subtopic", + "position": { + "x": 297.54484613528683, + "y": 304.21599278857485 + }, + "selected": false, + "data": { + "label": "Feature Modules", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "9YhTXybJw2gszlqFeBtW3" + }, + "zIndex": 999, + "width": 234, + "height": 49, + "style": { + "width": 234, + "height": 49 + }, + "positionAbsolute": { + "x": 297.54484613528683, + "y": 304.21599278857485 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "bLERvEERmNI5AgxtEYokZ", + "type": "subtopic", + "position": { + "x": 297.54484613528683, + "y": 357.21599278857485 + }, + "selected": false, + "data": { + "label": "Lazy Loading Modules", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 234, + "height": 49, + "style": { + "width": 234, + "height": 49 + }, + "positionAbsolute": { + "x": 297.54484613528683, + "y": 357.21599278857485 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "5b590c7s-2XJ0rgdCYxLa", + "type": "subtopic", + "position": { + "x": 297.54484613528683, + "y": 410.21599278857485 + }, + "selected": false, + "data": { + "label": "Dependencies", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 234, + "height": 49, + "style": { + "width": 234, + "height": 49 + }, + "positionAbsolute": { + "x": 297.54484613528683, + "y": 410.21599278857485 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "6fhe9xAi_RSVfa-KKbcbV", + "type": "topic", + "position": { + "x": 332.25667336124326, + "y": 604.2304293708296 + }, + "selected": false, + "data": { + "label": "Templates", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 198, + "height": 49, + "style": { + "width": 198, + "height": 49 + }, + "positionAbsolute": { + "x": 332.25667336124326, + "y": 604.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": true + }, + { + "id": "XHpfHRIlFh19FJIE07u7i", + "type": "subtopic", + "position": { + "x": -100.73327447982547, + "y": 463.7304293708296 + }, + "selected": false, + "data": { + "label": "Interpoloation", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 225, + "height": 49, + "style": { + "width": 225, + "height": 49 + }, + "positionAbsolute": { + "x": -100.73327447982547, + "y": 463.7304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "t2YOeMONlcnKBrVAo0JDc", + "type": "subtopic", + "position": { + "x": -100.73327447982547, + "y": 516.7304293708296 + }, + "selected": false, + "data": { + "label": "Template Statements", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 225, + "height": 49, + "style": { + "width": 225, + "height": 49 + }, + "positionAbsolute": { + "x": -100.73327447982547, + "y": 516.7304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "WH5wlyOtrqFHBJx7RFJwS", + "type": "topic", + "position": { + "x": -99.73327447982547, + "y": 572.2304293708296 + }, + "selected": false, + "data": { + "label": "Understand Binding", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 225, + "height": 49, + "style": { + "width": 225, + "height": 49 + }, + "positionAbsolute": { + "x": -99.73327447982547, + "y": 572.2304293708296 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "5vZkiH7HDwONIABLfNJ06", + "type": "subtopic", + "position": { + "x": -91.73327447982547, + "y": 629.2304293708296 + }, + "selected": false, + "data": { + "label": "Data Binding", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 209, + "height": 49, + "style": { + "width": 209, + "height": 49 + }, + "positionAbsolute": { + "x": -91.73327447982547, + "y": 629.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "TJOZfHtsLfwA0CZ2bd1b2", + "type": "subtopic", + "position": { + "x": -91.73327447982547, + "y": 682.2304293708296 + }, + "selected": false, + "data": { + "label": "Properties Binding", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 209, + "height": 49, + "style": { + "width": 209, + "height": 49 + }, + "positionAbsolute": { + "x": -91.73327447982547, + "y": 682.2304293708296 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "FgsSyM6To7irpbivtOLEE", + "type": "subtopic", + "position": { + "x": -91.73327447982547, + "y": 735.2304293708296 + }, + "selected": false, + "data": { + "label": "Attributes Binding", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 209, + "height": 49, + "style": { + "width": 209, + "height": 49 + }, + "positionAbsolute": { + "x": -91.73327447982547, + "y": 735.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "bKnpirSvex4oE4lAjiSSV", + "type": "subtopic", + "position": { + "x": -91.73327447982547, + "y": 788.2304293708296 + }, + "selected": false, + "data": { + "label": "Events", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 209, + "height": 49, + "style": { + "width": 209, + "height": 49 + }, + "positionAbsolute": { + "x": -91.73327447982547, + "y": 788.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "2UH79nCjgtY1Qz1YjUJYL", + "type": "subtopic", + "position": { + "x": -91.73327447982547, + "y": 841.2304293708296 + }, + "selected": false, + "data": { + "label": "Two-way Binding", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 209, + "height": 49, + "style": { + "width": 209, + "height": 49 + }, + "positionAbsolute": { + "x": -91.73327447982547, + "y": 841.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "VzvB_bads057YtG4ST4a2", + "type": "subtopic", + "position": { + "x": -99.73327447982547, + "y": 904.2304293708296 + }, + "selected": false, + "data": { + "label": "Control Flow", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 225, + "height": 49, + "style": { + "width": 225, + "height": 49 + }, + "positionAbsolute": { + "x": -99.73327447982547, + "y": 904.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "Wc2ybRw43uamEtno0FpDv", + "type": "subtopic", + "position": { + "x": -99.73327447982547, + "y": 957.2304293708296 + }, + "selected": false, + "data": { + "label": "Template Ref Vars", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "nyDry6ZWyEUuTq4pw-lU3" + }, + "zIndex": 999, + "width": 225, + "height": 49, + "style": { + "width": 225, + "height": 49 + }, + "positionAbsolute": { + "x": -99.73327447982547, + "y": 957.2304293708296 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "VsU6713jeIjAOEZnF6gWx", + "type": "subtopic", + "position": { + "x": -99.73327447982547, + "y": 1010.2304293708296 + }, + "selected": false, + "data": { + "label": "@Input & @Output", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 225, + "height": 49, + "style": { + "width": 225, + "height": 49 + }, + "dragging": false, + "positionAbsolute": { + "x": -99.73327447982547, + "y": 1010.2304293708296 + }, + "selectable": true, + "focusable": true + }, + { + "id": "nyDry6ZWyEUuTq4pw-lU3", + "type": "subtopic", + "position": { + "x": -99.73327447982547, + "y": 957.2304293708296 + }, + "selected": false, + "data": { + "label": "Template Ref Vars", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 225, + "height": 49, + "style": { + "width": 225, + "height": 49 + }, + "positionAbsolute": { + "x": -99.73327447982547, + "y": 957.2304293708296 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "VsC7UmE_AumsBP8fC6to1", + "type": "topic", + "position": { + "x": -522.2433266387567, + "y": 739.2304293708296 + }, + "selected": false, + "data": { + "label": "Template Syntax", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 184, + "height": 49, + "style": { + "width": 184, + "height": 49 + }, + "positionAbsolute": { + "x": -522.2433266387567, + "y": 739.2304293708296 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "U1Zy2T-2ki9pDkXn9hn-I", + "type": "subtopic", + "position": { + "x": -514.5993272119424, + "y": 796.2304293708296 + }, + "selected": false, + "data": { + "label": "@if", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 75, + "height": 49, + "style": { + "width": 75, + "height": 49 + }, + "positionAbsolute": { + "x": -514.5993272119424, + "y": 796.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "ORdPDad4HWJAfcZuS-7yM", + "type": "subtopic", + "position": { + "x": -436.3084777160734, + "y": 795.2304293708296 + }, + "selected": false, + "data": { + "label": "@else", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 90, + "height": 49, + "style": { + "width": 90, + "height": 49 + }, + "positionAbsolute": { + "x": -436.3084777160734, + "y": 795.2304293708296 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "ys5untkSppGMFK-VsfuRt", + "type": "subtopic", + "position": { + "x": -514.5993272119424, + "y": 848.2304293708296 + }, + "selected": false, + "data": { + "label": "@else if", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "mRB-0CRdGwvxPqZbz08yj" + }, + "zIndex": 999, + "width": 166, + "height": 49, + "style": { + "width": 166, + "height": 49 + }, + "positionAbsolute": { + "x": -514.5993272119424, + "y": 848.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "2kYS9w1UzQFZ1zhf01m9L", + "type": "subtopic", + "position": { + "x": -515.5993272119424, + "y": 900.2304293708296 + }, + "selected": false, + "data": { + "label": "@for", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 75, + "height": 49, + "style": { + "width": 75, + "height": 49 + }, + "positionAbsolute": { + "x": -515.5993272119424, + "y": 900.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "nZuim4Fjq6jYOXcRTAEay", + "type": "subtopic", + "position": { + "x": -436.3084777160734, + "y": 901.2304293708296 + }, + "selected": false, + "data": { + "label": "@switch", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 90, + "height": 49, + "style": { + "width": 90, + "height": 49 + }, + "positionAbsolute": { + "x": -436.3084777160734, + "y": 901.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "cHC2MH50CbUSMRZV4QGJI", + "type": "subtopic", + "position": { + "x": -515.5993272119424, + "y": 952.2304293708296 + }, + "selected": false, + "data": { + "label": "@case", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 75, + "height": 49, + "style": { + "width": 75, + "height": 49 + }, + "positionAbsolute": { + "x": -515.5993272119424, + "y": 952.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "h4MMn0_qUN3YXEdMUJOyd", + "type": "subtopic", + "position": { + "x": -436.3084777160734, + "y": 954.2304293708296 + }, + "selected": false, + "data": { + "label": "@default", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 90, + "height": 49, + "style": { + "width": 90, + "height": 49 + }, + "positionAbsolute": { + "x": -436.3084777160734, + "y": 954.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "AwOM0ucg6W7TohdUd7KWT", + "type": "subtopic", + "position": { + "x": -514.5993272119424, + "y": 1004.2304293708296 + }, + "selected": false, + "data": { + "label": "@let", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 75, + "height": 49, + "style": { + "width": 75, + "height": 49 + }, + "positionAbsolute": { + "x": -514.5993272119424, + "y": 1004.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "ONy-0olujU_FGZM7Wvfr2", + "type": "subtopic", + "position": { + "x": -436.3084777160734, + "y": 1007.2304293708296 + }, + "selected": false, + "data": { + "label": "@defer", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 90, + "height": 49, + "style": { + "width": 90, + "height": 49 + }, + "positionAbsolute": { + "x": -436.3084777160734, + "y": 1007.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "j99WQxuTzGeBBVoReDp_y", + "type": "topic", + "position": { + "x": -340.63327447982533, + "y": 739.2304293708296 + }, + "selected": false, + "data": { + "label": "Pipes", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 203, + "height": 49, + "style": { + "width": 203, + "height": 49 + }, + "positionAbsolute": { + "x": -340.63327447982533, + "y": 739.2304293708296 + }, + "selectable": true, + "focusable": true, + "dragging": false + }, + { + "id": "_-mTs_FMeob-ZGK-bb3j-", + "type": "subtopic", + "position": { + "x": -332.63327447982533, + "y": 848.2304293708296 + }, + "selected": false, + "data": { + "label": "Change Detection", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "CCLlL17z35brwlr-q2FDV" + }, + "zIndex": 999, + "width": 187, + "height": 49, + "style": { + "width": 187, + "height": 49 + }, + "positionAbsolute": { + "x": -332.63327447982533, + "y": 848.2304293708296 + }, + "selectable": true, + "focusable": true, + "dragging": false + }, + { + "id": "i2taHzQ5KLHjkkpbH4Ytd", + "type": "subtopic", + "position": { + "x": -332.63327447982533, + "y": 901.2304293708296 + }, + "selected": false, + "data": { + "label": "Common Pipes", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 187, + "height": 49, + "style": { + "width": 187, + "height": 49 + }, + "positionAbsolute": { + "x": -332.63327447982533, + "y": 901.2304293708296 + }, + "selectable": true, + "focusable": true, + "dragging": false + }, + { + "id": "nZxZnzbQg9dz-SI65UHq9", + "type": "subtopic", + "position": { + "x": -332.63327447982533, + "y": 795.2304293708296 + }, + "selected": false, + "data": { + "label": "Pipes Precedence", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "CCLlL17z35brwlr-q2FDV" + }, + "zIndex": 999, + "width": 187, + "height": 49, + "style": { + "width": 187, + "height": 49 + }, + "positionAbsolute": { + "x": -332.63327447982533, + "y": 795.2304293708296 + }, + "selectable": true, + "focusable": true, + "dragging": false + }, + { + "id": "BOYXGfULJRiP-XOo_lNX3", + "type": "subtopic", + "position": { + "x": -332.63327447982533, + "y": 954.2304293708296 + }, + "selected": false, + "data": { + "label": "Custom Pipes", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "i2taHzQ5KLHjkkpbH4Ytd" + }, + "zIndex": 999, + "width": 187, + "height": 49, + "style": { + "width": 187, + "height": 49 + }, + "positionAbsolute": { + "x": -332.63327447982533, + "y": 954.2304293708296 + }, + "selectable": true, + "focusable": true, + "dragging": false + }, + { + "id": "mRB-0CRdGwvxPqZbz08yj", + "type": "subtopic", + "position": { + "x": -514.5993272119424, + "y": 848.2304293708296 + }, + "selected": false, + "data": { + "label": "@else if", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 166, + "height": 49, + "style": { + "width": 166, + "height": 49 + }, + "positionAbsolute": { + "x": -514.5993272119424, + "y": 848.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "kGzlumFdZFxTRZ3HnCGFO", + "type": "topic", + "position": { + "x": 332.25667336124326, + "y": 884.2304293708296 + }, + "selected": false, + "data": { + "label": "Directives", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 198, + "height": 49, + "style": { + "width": 198, + "height": 49 + }, + "positionAbsolute": { + "x": 332.25667336124326, + "y": 884.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "xk3v8p6vf8ntGj5c-IU4U", + "type": "subtopic", + "position": { + "x": 191.04484613528683, + "y": 690.2304293708296 + }, + "selected": false, + "data": { + "label": "Structural Directives", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 203, + "height": 49, + "style": { + "width": 203 + }, + "positionAbsolute": { + "x": 191.04484613528683, + "y": 690.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "xvwby0FTdIolRrV2j88fY", + "type": "subtopic", + "position": { + "x": 191.04484613528683, + "y": 743.2304293708296 + }, + "selected": false, + "data": { + "label": "Attribute Directives", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "xk3v8p6vf8ntGj5c-IU4U" + }, + "zIndex": 999, + "width": 203, + "height": 49, + "style": { + "width": 203 + }, + "positionAbsolute": { + "x": 191.04484613528683, + "y": 743.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "7GUvTMVzfdVEDBOz-tHUT", + "type": "subtopic", + "position": { + "x": 191.04484613528683, + "y": 796.2304293708296 + }, + "selected": false, + "data": { + "label": "Custom Directives", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "xvwby0FTdIolRrV2j88fY" + }, + "zIndex": 999, + "width": 203, + "height": 49, + "style": { + "width": 203, + "height": 49 + }, + "positionAbsolute": { + "x": 191.04484613528683, + "y": 796.2304293708296 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "a74v78SvGtWduZpXs7wSq", + "type": "topic", + "position": { + "x": 332.25667336124326, + "y": 1142.7304293708294 + }, + "selected": false, + "data": { + "label": "Routing", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "kGzlumFdZFxTRZ3HnCGFO" + }, + "zIndex": 999, + "width": 198, + "height": 49, + "style": { + "width": 198, + "height": 49 + }, + "positionAbsolute": { + "x": 332.25667336124326, + "y": 1142.7304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "dbAS-hN1hoCsNJhkxXcGq", + "type": "subtopic", + "position": { + "x": 191.04484613528683, + "y": 961.7304293708294 + }, + "selected": false, + "data": { + "label": "Configuration", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 203, + "height": 49, + "style": { + "width": 203, + "height": 49 + }, + "positionAbsolute": { + "x": 191.04484613528683, + "y": 961.7304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "ewbDdPYv2SJl_jW3RVHQs", + "type": "subtopic", + "position": { + "x": 191.04484613528683, + "y": 1014.7304293708294 + }, + "selected": false, + "data": { + "label": "Lazy Loading", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 203, + "height": 49, + "style": { + "width": 203, + "height": 49 + }, + "positionAbsolute": { + "x": 191.04484613528683, + "y": 1014.7304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "1ZwdEL0Gx30Vv_Av3ZTGG", + "type": "subtopic", + "position": { + "x": 191.04484613528683, + "y": 1067.7304293708294 + }, + "selected": false, + "data": { + "label": "Router Outlets", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 203, + "height": 49, + "style": { + "width": 203, + "height": 49 + }, + "positionAbsolute": { + "x": 191.04484613528683, + "y": 1067.7304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "8lFyuSx4MUcYRY2L8bZrq", + "type": "subtopic", + "position": { + "x": 192.04484613528683, + "y": 1222.7304293708294 + }, + "selected": false, + "data": { + "label": "Router Links", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 203, + "height": 49, + "style": { + "width": 203, + "height": 49 + }, + "positionAbsolute": { + "x": 192.04484613528683, + "y": 1222.7304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "YF_sG292HqawIX0siWhrv", + "type": "subtopic", + "position": { + "x": 192.04484613528683, + "y": 1275.7304293708294 + }, + "selected": false, + "data": { + "label": "Router Events", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 203, + "height": 49, + "style": { + "width": 203, + "height": 49 + }, + "positionAbsolute": { + "x": 192.04484613528683, + "y": 1275.7304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "PmC4zeaLpa5LoL4FhYXcG", + "type": "subtopic", + "position": { + "x": 192.04484613528683, + "y": 1328.7304293708294 + }, + "selected": false, + "data": { + "label": "Guards", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 203, + "height": 49, + "style": { + "width": 203, + "height": 49 + }, + "positionAbsolute": { + "x": 192.04484613528683, + "y": 1328.7304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "CpsoIVoCKaZnM_-BbXbCh", + "type": "topic", + "position": { + "x": -131.73327447982547, + "y": 1142.7304293708294 + }, + "selected": false, + "data": { + "label": "Services & Remote Data", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "a74v78SvGtWduZpXs7wSq" + }, + "zIndex": 999, + "width": 242, + "height": 49, + "style": { + "width": 242, + "height": 49 + }, + "positionAbsolute": { + "x": -131.73327447982547, + "y": 1142.7304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "8u9uHCRt9RU57erBy79PP", + "type": "subtopic", + "position": { + "x": -131.73327447982547, + "y": 1222.7304293708294 + }, + "selected": false, + "data": { + "label": "Dependency Injection", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 242, + "height": 49, + "style": { + "width": 242, + "height": 49 + }, + "positionAbsolute": { + "x": -131.73327447982547, + "y": 1222.7304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "Q36LQds8k_cSjijvXyWOM", + "type": "topic", + "position": { + "x": -418.63327447982533, + "y": 1347.7304293708294 + }, + "selected": false, + "data": { + "label": "Forms", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "CpsoIVoCKaZnM_-BbXbCh" + }, + "zIndex": 999, + "width": 124, + "height": 49, + "style": { + "width": 124, + "height": 49 + }, + "positionAbsolute": { + "x": -418.63327447982533, + "y": 1347.7304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "1d3Y4HVnqom8UOok-7EEf", + "type": "subtopic", + "position": { + "x": -518.6332744798253, + "y": 1095.7304293708294 + }, + "selected": false, + "data": { + "label": "Reactive Forms", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 224, + "height": 49, + "style": { + "width": 224, + "height": 49 + }, + "positionAbsolute": { + "x": -518.6332744798253, + "y": 1095.7304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "XC_K1Wahl2ySqOXoym4YU", + "type": "subtopic", + "position": { + "x": -518.6332744798253, + "y": 1148.7304293708294 + }, + "selected": false, + "data": { + "label": "Typed Forms", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 224, + "height": 49, + "style": { + "width": 224, + "height": 49 + }, + "positionAbsolute": { + "x": -518.6332744798253, + "y": 1148.7304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "uDx4lPavwsJFBMzdQ70CS", + "type": "subtopic", + "position": { + "x": -518.6332744798253, + "y": 1201.7304293708294 + }, + "selected": false, + "data": { + "label": "Template-driven Forms", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 224, + "height": 49, + "style": { + "width": 224, + "height": 49 + }, + "positionAbsolute": { + "x": -518.6332744798253, + "y": 1201.7304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "CpufN6DAOj5UNab9vnH0k", + "type": "subtopic", + "position": { + "x": -518.6332744798253, + "y": 1254.7304293708294 + }, + "selected": false, + "data": { + "label": "Dynamic Forms", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 224, + "height": 49, + "style": { + "width": 224, + "height": 49 + }, + "positionAbsolute": { + "x": -518.6332744798253, + "y": 1254.7304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "kxRtLsB3y_th8j-HjmJgK", + "type": "subtopic", + "position": { + "x": -518.6332744798253, + "y": 1440.7304293708294 + }, + "selected": false, + "data": { + "label": "Custom Validators", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 224, + "height": 49, + "style": { + "width": 224, + "height": 49 + }, + "positionAbsolute": { + "x": -518.6332744798253, + "y": 1440.7304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "m5dgKgUR3ZqI9sBAzToev", + "type": "subtopic", + "position": { + "x": -518.6332744798253, + "y": 1493.7304293708294 + }, + "selected": false, + "data": { + "label": "Control Value Accessor", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 224, + "height": 49, + "style": { + "width": 224, + "height": 49 + }, + "positionAbsolute": { + "x": -518.6332744798253, + "y": 1493.7304293708294 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "8UY0HAvjY7bdbFpt-MM1u", + "type": "topic", + "position": { + "x": -126.73327447982547, + "y": 1347.7304293708294 + }, + "selected": false, + "data": { + "label": "HTTP Client", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "Q36LQds8k_cSjijvXyWOM" + }, + "zIndex": 999, + "width": 153, + "height": 49, + "style": { + "width": 153, + "height": 49 + }, + "positionAbsolute": { + "x": -126.73327447982547, + "y": 1347.7304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "AKPhbg10xXjccO7UBh5eJ", + "type": "subtopic", + "position": { + "x": -152.73327447982547, + "y": 1436.7304293708294 + }, + "selected": false, + "data": { + "label": "Setting Up the Client", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 205, + "height": 49, + "style": { + "width": 205 + }, + "positionAbsolute": { + "x": -152.73327447982547, + "y": 1436.7304293708294 + }, + "selectable": true, + "focusable": true, + "dragging": false + }, + { + "id": "HjGAv3aV-p4ijYJ8XYIw3", + "type": "subtopic", + "position": { + "x": -152.73327447982547, + "y": 1489.7304293708294 + }, + "selected": false, + "data": { + "label": "Making Requests", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 205, + "height": 49, + "style": { + "width": 205 + }, + "positionAbsolute": { + "x": -152.73327447982547, + "y": 1489.7304293708294 + }, + "selectable": true, + "focusable": true, + "dragging": false + }, + { + "id": "xG7iSVOGcbxJbNv3xbNfc", + "type": "subtopic", + "position": { + "x": -152.73327447982547, + "y": 1542.7304293708294 + }, + "selected": false, + "data": { + "label": "Writing Interceptors", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 205, + "height": 49, + "style": { + "width": 205 + }, + "positionAbsolute": { + "x": -152.73327447982547, + "y": 1542.7304293708294 + }, + "selectable": true, + "focusable": true, + "dragging": false + }, + { + "id": "lfp7PIjwITU5gBITQdirD", + "type": "topic", + "position": { + "x": 171.04484613528683, + "y": 1444.7304293708294 + }, + "selected": false, + "data": { + "label": "RxJS Basics", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "8UY0HAvjY7bdbFpt-MM1u" + }, + "zIndex": 999, + "width": 153, + "height": 49, + "style": { + "width": 153, + "height": 49 + }, + "positionAbsolute": { + "x": 171.04484613528683, + "y": 1444.7304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "krXA6ua7E3m4IIpFkgQZe", + "type": "subtopic", + "position": { + "x": 324.86672552017467, + "y": 1538.93042937083 + }, + "selected": false, + "data": { + "label": "Observable Pattern", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 210, + "height": 49, + "style": { + "width": 210, + "height": 49 + }, + "positionAbsolute": { + "x": 324.86672552017467, + "y": 1538.93042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "b06Y5YrqBbHhWkK6Ws_1c", + "type": "subtopic", + "position": { + "x": 324.86672552017467, + "y": 1591.93042937083 + }, + "selected": false, + "data": { + "label": "Observable Lifecycle", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 210, + "height": 49, + "style": { + "width": 210, + "height": 49 + }, + "positionAbsolute": { + "x": 324.86672552017467, + "y": 1591.93042937083 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "e1ZmmxPZuogCNgtbPPWmd", + "type": "subtopic", + "position": { + "x": 324.86672552017467, + "y": 1644.93042937083 + }, + "selected": false, + "data": { + "label": "RxJS vs Promises", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 210, + "height": 49, + "style": { + "width": 210, + "height": 49 + }, + "positionAbsolute": { + "x": 324.86672552017467, + "y": 1644.93042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "ihsjIcF0tkhjs56458teE", + "type": "subtopic", + "position": { + "x": 324.86672552017467, + "y": 1697.93042937083 + }, + "selected": false, + "data": { + "label": "Operators", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 210, + "height": 49, + "style": { + "width": 210, + "height": 49 + }, + "positionAbsolute": { + "x": 324.86672552017467, + "y": 1697.93042937083 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "nxUbl0eu3LsSL-Z8X6nP5", + "type": "subtopic", + "position": { + "x": 332.86672552017467, + "y": 1751.93042937083 + }, + "selected": false, + "data": { + "label": "Filtering", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 194, + "height": 49, + "style": { + "width": 194, + "height": 49 + }, + "positionAbsolute": { + "x": 332.86672552017467, + "y": 1751.93042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "bJbbayFQ9WSJT9-qy0H5l", + "type": "subtopic", + "position": { + "x": 332.86672552017467, + "y": 1804.93042937083 + }, + "selected": false, + "data": { + "label": "Rate Limiting", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 194, + "height": 49, + "style": { + "width": 194, + "height": 49 + }, + "positionAbsolute": { + "x": 332.86672552017467, + "y": 1804.93042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "kdMJHljMzGA3oRlh8Zvos", + "type": "subtopic", + "position": { + "x": 332.86672552017467, + "y": 1857.93042937083 + }, + "selected": false, + "data": { + "label": "Transformation", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 194, + "height": 49, + "style": { + "width": 194, + "height": 49 + }, + "positionAbsolute": { + "x": 332.86672552017467, + "y": 1857.93042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "IgUHqfVhiGpwxT9tY8O88", + "type": "subtopic", + "position": { + "x": 332.86672552017467, + "y": 1910.93042937083 + }, + "selected": false, + "data": { + "label": "Combination", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 194, + "height": 49, + "style": { + "width": 194, + "height": 49 + }, + "positionAbsolute": { + "x": 332.86672552017467, + "y": 1910.93042937083 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "u1TG8i145o0RKhOR_5epf", + "type": "topic", + "position": { + "x": 171.04484613528683, + "y": 1644.93042937083 + }, + "selected": false, + "data": { + "label": "Signals", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 121, + "height": 49, + "style": { + "width": 121, + "height": 49 + }, + "positionAbsolute": { + "x": 171.04484613528683, + "y": 1644.93042937083 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "KAdtebWvgvMifIwd52yc4", + "type": "subtopic", + "position": { + "x": 106.86672552017467, + "y": 1731.43042937083 + }, + "selected": false, + "data": { + "label": "RxJS Interop", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 189, + "height": 49, + "style": { + "width": 189 + }, + "positionAbsolute": { + "x": 106.86672552017467, + "y": 1731.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "LcJyAfv9hjyUNXUVyPRP4", + "type": "subtopic", + "position": { + "x": 106.86672552017467, + "y": 1784.43042937083 + }, + "selected": false, + "data": { + "label": "Inputs as Signals", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 189, + "height": 49, + "style": { + "width": 189 + }, + "positionAbsolute": { + "x": 106.86672552017467, + "y": 1784.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "9HS9C3yq9EUcUy0ZUZk_H", + "type": "subtopic", + "position": { + "x": 106.86672552017467, + "y": 1837.43042937083 + }, + "selected": false, + "data": { + "label": "Queries as Signals", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 189, + "height": 69, + "style": { + "width": 189 + }, + "positionAbsolute": { + "x": 106.86672552017467, + "y": 1837.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "IeU6ClS_yp6BYKdkQOJVf", + "type": "subtopic", + "position": { + "x": 106.86672552017467, + "y": 1890.43042937083 + }, + "selected": false, + "data": { + "label": "Model Inputs", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 189, + "height": 49, + "style": { + "width": 189 + }, + "positionAbsolute": { + "x": 106.86672552017467, + "y": 1890.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "Mqe_s-nwBqAL6X7OGRHEN", + "type": "topic", + "position": { + "x": -151.73327447982547, + "y": 1644.93042937083 + }, + "selected": false, + "data": { + "label": "State Management", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 218, + "height": 49, + "style": { + "width": 218, + "height": 49 + }, + "positionAbsolute": { + "x": -151.73327447982547, + "y": 1644.93042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "N9ZCPgFnFIUv4jMv1w5qK", + "type": "subtopic", + "position": { + "x": -152.13327447982533, + "y": 1731.43042937083 + }, + "selected": false, + "data": { + "label": "NGXS", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 70, + "height": 49, + "style": { + "width": 70, + "height": 49 + }, + "positionAbsolute": { + "x": -152.13327447982533, + "y": 1731.43042937083 + }, + "selectable": true, + "focusable": true, + "dragging": false + }, + { + "id": "ir94IdkF1tVAA8ZTD9r0N", + "type": "subtopic", + "position": { + "x": -4.133274479825332, + "y": 1731.43042937083 + }, + "selected": false, + "data": { + "label": "NgRx", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 70, + "height": 49, + "style": { + "width": 70, + "height": 49 + }, + "positionAbsolute": { + "x": -4.133274479825332, + "y": 1731.43042937083 + }, + "selectable": true, + "focusable": true, + "dragging": false + }, + { + "id": "rgPUcSKxG9DvXicLfC2Ay", + "type": "subtopic", + "position": { + "x": -78.13327447982533, + "y": 1731.43042937083 + }, + "selected": false, + "data": { + "label": "Elf", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 70, + "height": 49, + "style": { + "width": 70, + "height": 49 + }, + "positionAbsolute": { + "x": -78.13327447982533, + "y": 1731.43042937083 + }, + "selectable": true, + "focusable": true, + "dragging": false + }, + { + "id": "m4WBnx_9h01Jl6Q1sxi4Y", + "type": "topic", + "position": { + "x": -387.63327447982533, + "y": 1644.93042937083 + }, + "selected": false, + "data": { + "label": "Zones", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 93, + "height": 49, + "style": {}, + "positionAbsolute": { + "x": -387.63327447982533, + "y": 1644.93042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "1x5pT607aKE-S-NCWB810", + "type": "subtopic", + "position": { + "x": -507.63327447982533, + "y": 1566.43042937083 + }, + "selected": false, + "data": { + "label": "Zoneless Applications", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 213, + "height": 49, + "style": {}, + "positionAbsolute": { + "x": -507.63327447982533, + "y": 1566.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "EbJib-XfZFF9bpCtL3aBs", + "type": "topic", + "position": { + "x": -463.63327447982533, + "y": 1841.43042937083 + }, + "selected": false, + "data": { + "label": "Developer Tools", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 169, + "height": 49, + "style": {}, + "positionAbsolute": { + "x": -463.63327447982533, + "y": 1841.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "4YSk6I63Ew--zoXC3xmrC", + "type": "subtopic", + "position": { + "x": -519.1332744798253, + "y": 1939.43042937083 + }, + "selected": false, + "data": { + "label": "Angular CLI", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 209, + "height": 49, + "style": { + "width": 209 + }, + "positionAbsolute": { + "x": -519.1332744798253, + "y": 1939.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "FVH0lnbIZ2m5EfF2EJ2DW", + "type": "subtopic", + "position": { + "x": -512.1332744798253, + "y": 1996.43042937083 + }, + "selected": false, + "data": { + "label": "Local Setup", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 195, + "height": 49, + "style": { + "width": 195, + "height": 49 + }, + "positionAbsolute": { + "x": -512.1332744798253, + "y": 1996.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "1fVi9AK6aLjt5QgAFbnGX", + "type": "subtopic", + "position": { + "x": -512.1332744798253, + "y": 2049.43042937083 + }, + "selected": false, + "data": { + "label": "Deployment", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 195, + "height": 49, + "style": { + "width": 195, + "height": 49 + }, + "positionAbsolute": { + "x": -512.1332744798253, + "y": 2049.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "yhNGhduk__ow8VTLc6inZ", + "type": "subtopic", + "position": { + "x": -512.1332744798253, + "y": 2102.43042937083 + }, + "selected": false, + "data": { + "label": "End-to-End Testing", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 195, + "height": 49, + "style": { + "width": 195, + "height": 49 + }, + "positionAbsolute": { + "x": -512.1332744798253, + "y": 2102.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "Uvr0pRk_fOzwRwqn0dQ6N", + "type": "subtopic", + "position": { + "x": -512.1332744798253, + "y": 2155.43042937083 + }, + "selected": false, + "data": { + "label": "Schematics", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 195, + "height": 49, + "style": { + "width": 195, + "height": 49 + }, + "positionAbsolute": { + "x": -512.1332744798253, + "y": 2155.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "Ax-s_xw3FO3Ocv-AnLbQD", + "type": "subtopic", + "position": { + "x": -512.1332744798253, + "y": 2208.43042937083 + }, + "selected": false, + "data": { + "label": "Build Environments", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 195, + "height": 49, + "style": { + "width": 195, + "height": 49 + }, + "positionAbsolute": { + "x": -512.1332744798253, + "y": 2208.43042937083 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "TeWEy9I-hU6SH02Sy2S2S", + "type": "subtopic", + "position": { + "x": -512.1332744798253, + "y": 2261.43042937083 + }, + "selected": false, + "data": { + "label": "CLI Builders", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 195, + "height": 49, + "style": { + "width": 195, + "height": 49 + }, + "positionAbsolute": { + "x": -512.1332744798253, + "y": 2261.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "MwtM1UAIfj4FJ-Y4CKDsP", + "type": "subtopic", + "position": { + "x": -512.1332744798253, + "y": 2314.43042937083 + }, + "selected": false, + "data": { + "label": "AoT Compilation", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 195, + "height": 49, + "style": { + "width": 195, + "height": 49 + }, + "positionAbsolute": { + "x": -512.1332744798253, + "y": 2314.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "T3MmS3bvMMgCUbOk3ktU7", + "type": "subtopic", + "position": { + "x": -301.7433266387567, + "y": 1940.2304293708294 + }, + "selected": false, + "data": { + "label": "DevTools", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "ql7SyxrRmjpiXJ9hQeWPq" + }, + "zIndex": 999, + "width": 204, + "height": 49, + "style": { + "width": 204, + "height": 49 + }, + "resizing": false, + "positionAbsolute": { + "x": -301.7433266387567, + "y": 1940.2304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "ql7SyxrRmjpiXJ9hQeWPq", + "type": "subtopic", + "position": { + "x": -301.7433266387567, + "y": 1993.2304293708294 + }, + "selected": false, + "data": { + "label": "Language Service", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 204, + "height": 49, + "style": { + "width": 204, + "height": 49 + }, + "resizing": false, + "positionAbsolute": { + "x": -301.7433266387567, + "y": 1993.2304293708294 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "cl89U8atD6gw5rMGUm4Ix", + "type": "subtopic", + "position": { + "x": -301.7433266387567, + "y": 2047.93042937083 + }, + "selected": false, + "data": { + "label": "Libraries", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 204, + "height": 49, + "style": { + "width": 204, + "height": 49 + }, + "positionAbsolute": { + "x": -301.7433266387567, + "y": 2047.93042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "YHV5oFwLwphXf1wJTDZuG", + "type": "subtopic", + "position": { + "x": -293.63327447982533, + "y": 2104.93042937083 + }, + "selected": false, + "data": { + "label": "Using Libraries", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 188, + "height": 49, + "style": { + "width": 188, + "height": 49 + }, + "positionAbsolute": { + "x": -293.63327447982533, + "y": 2104.93042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "A1mYMg7cbcj6p_VkDf-Tz", + "type": "subtopic", + "position": { + "x": -293.63327447982533, + "y": 2157.93042937083 + }, + "selected": false, + "data": { + "label": "Creating Libraries", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 188, + "height": 49, + "style": { + "width": 188, + "height": 49 + }, + "dragging": false, + "resizing": false, + "positionAbsolute": { + "x": -293.63327447982533, + "y": 2157.93042937083 + }, + "selectable": true, + "focusable": true + }, + { + "id": "jfHaS8TqE4tcAo59K8Nkn", + "type": "topic", + "position": { + "x": -48.95968546864998, + "y": 1841.43042937083 + }, + "selected": false, + "data": { + "label": "SSR", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "EbJib-XfZFF9bpCtL3aBs" + }, + "zIndex": 999, + "width": 107, + "height": 49, + "style": { + "width": 107, + "height": 49 + }, + "positionAbsolute": { + "x": -48.95968546864998, + "y": 1841.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": true + }, + { + "id": "b-0yQ74zHtAxI9aRLBohc", + "type": "topic", + "position": { + "x": -48.95968546864998, + "y": 1989.2304293708294 + }, + "selected": false, + "data": { + "label": "SSG", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 107, + "height": 49, + "style": { + "width": 107, + "height": 49 + }, + "positionAbsolute": { + "x": -48.95968546864998, + "y": 1989.2304293708294 + }, + "selectable": true, + "focusable": true, + "dragging": false, + "resizing": false + }, + { + "id": "kauQofxCmpktXPcnzid17", + "type": "subtopic", + "position": { + "x": 142.86672552017467, + "y": 1988.43042937083 + }, + "selected": false, + "data": { + "label": "AnalogJS", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 117, + "height": 49, + "style": { + "width": 117, + "height": 49 + }, + "positionAbsolute": { + "x": 142.86672552017467, + "y": 1988.43042937083 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "mm6c7GLQEwoQdAHdAYzGh", + "type": "topic", + "position": { + "x": -48.95968546864998, + "y": 2132.43042937083 + }, + "selected": false, + "data": { + "label": "Security", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 107, + "height": 49, + "style": { + "width": 107, + "height": 49 + }, + "positionAbsolute": { + "x": -48.95968546864998, + "y": 2132.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "umUX4Hxk7srHlFR_Un-u7", + "type": "subtopic", + "position": { + "x": -301.13327447982533, + "y": 2236.43042937083 + }, + "selected": false, + "data": { + "label": "Cross-site Scripting", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 237, + "height": 49, + "style": { + "width": 237, + "height": 49 + }, + "positionAbsolute": { + "x": -301.13327447982533, + "y": 2236.43042937083 + }, + "selectable": true, + "focusable": true, + "dragging": false, + "resizing": false + }, + { + "id": "cgI9oeUHufA-ky_W1zENe", + "type": "subtopic", + "position": { + "x": -293.13327447982533, + "y": 2293.43042937083 + }, + "selected": false, + "data": { + "label": "Sanitization", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 221, + "height": 49, + "style": { + "width": 221, + "height": 49 + }, + "positionAbsolute": { + "x": -293.13327447982533, + "y": 2293.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "XoYSuv1salCCHoI1cJkxv", + "type": "subtopic", + "position": { + "x": -293.13327447982533, + "y": 2346.43042937083 + }, + "selected": false, + "data": { + "label": "Trusting Safe Values", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 221, + "height": 49, + "style": { + "width": 221, + "height": 49 + }, + "positionAbsolute": { + "x": -293.13327447982533, + "y": 2346.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "5h7U0spwEUhB-hbjSlaeB", + "type": "subtopic", + "position": { + "x": -293.13327447982533, + "y": 2399.43042937083 + }, + "selected": false, + "data": { + "label": "Enforce Trusted Types", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 221, + "height": 49, + "style": { + "width": 221, + "height": 49 + }, + "positionAbsolute": { + "x": -293.13327447982533, + "y": 2399.43042937083 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "xH3RHPhsaqD9zIMms5OmX", + "type": "subtopic", + "position": { + "x": -67.13327447982533, + "y": 2236.43042937083 + }, + "selected": false, + "data": { + "label": "HTTP Vulnerabilities", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 276, + "height": 49, + "style": { + "width": 276, + "height": 49 + }, + "positionAbsolute": { + "x": -67.13327447982533, + "y": 2236.43042937083 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "Z1DZBbFI4oU6-KQg3wqMm", + "type": "subtopic", + "position": { + "x": -56.13327447982533, + "y": 2293.43042937083 + }, + "selected": false, + "data": { + "label": "Cross-site Request Forgery", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 257, + "height": 49, + "style": { + "width": 257, + "height": 49 + }, + "positionAbsolute": { + "x": -56.13327447982533, + "y": 2293.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "m2aw8vb4rz4IjshpoMyNx", + "type": "subtopic", + "position": { + "x": -56.13327447982533, + "y": 2346.43042937083 + }, + "selected": false, + "data": { + "label": "HttpClient CSRF", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 257, + "height": 49, + "style": { + "width": 257, + "height": 49 + }, + "positionAbsolute": { + "x": -56.13327447982533, + "y": 2346.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "ni00edsphJd7uBLCn7-Vw", + "type": "subtopic", + "position": { + "x": -56.13327447982533, + "y": 2399.43042937083 + }, + "selected": false, + "data": { + "label": "XSRF protection", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 257, + "height": 49, + "style": { + "width": 257, + "height": 49 + }, + "positionAbsolute": { + "x": -56.13327447982533, + "y": 2399.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "zd7YJGlcMFNFbsKUiW_XC", + "type": "subtopic", + "position": { + "x": -56.13327447982533, + "y": 2452.43042937083 + }, + "selected": false, + "data": { + "label": "Cross-site Script Inclusion", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 257, + "height": 49, + "style": { + "width": 257, + "height": 49 + }, + "positionAbsolute": { + "x": -56.13327447982533, + "y": 2452.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "VNG9DdXlS6R1OJ6Lrn4Lt", + "type": "topic", + "position": { + "x": 142.86672552017467, + "y": 2132.43042937083 + }, + "selected": false, + "data": { + "label": "Accessibility", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 146, + "height": 49, + "style": { + "width": 146, + "height": 49 + }, + "positionAbsolute": { + "x": 142.86672552017467, + "y": 2132.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "resizing": false + }, + { + "id": "0FvH7KPs9ag02QkD1HEJ-", + "type": "subtopic", + "position": { + "x": 353.36672552017467, + "y": 2025.93042937083 + }, + "selected": false, + "data": { + "label": "Atributes", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 181, + "height": 49, + "style": { + "width": 181, + "height": 49 + }, + "positionAbsolute": { + "x": 353.36672552017467, + "y": 2025.93042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "CZ1YRyai8Ds-ry4A8jVbr", + "type": "subtopic", + "position": { + "x": 353.36672552017467, + "y": 2078.93042937083 + }, + "selected": false, + "data": { + "label": "UI Components", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 181, + "height": 49, + "style": { + "width": 181, + "height": 49 + }, + "positionAbsolute": { + "x": 353.36672552017467, + "y": 2078.93042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "0s-QhN5aZh2F3tLJFKEyR", + "type": "subtopic", + "position": { + "x": 353.36672552017467, + "y": 2131.93042937083 + }, + "selected": false, + "data": { + "label": "Containers", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 181, + "height": 49, + "style": { + "width": 181, + "height": 49 + }, + "positionAbsolute": { + "x": 353.36672552017467, + "y": 2131.93042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "8i_JD1P4gIhY1rdldwLC2", + "type": "subtopic", + "position": { + "x": 353.36672552017467, + "y": 2184.93042937083 + }, + "selected": false, + "data": { + "label": "Routing", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 181, + "height": 49, + "style": { + "width": 181, + "height": 49 + }, + "positionAbsolute": { + "x": 353.36672552017467, + "y": 2184.93042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "5-RCB8AiDbkdIFYNXKWge", + "type": "subtopic", + "position": { + "x": 353.36672552017467, + "y": 2237.93042937083 + }, + "selected": false, + "data": { + "label": "Link Identification", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 181, + "height": 49, + "style": { + "width": 181, + "height": 49 + }, + "positionAbsolute": { + "x": 353.36672552017467, + "y": 2237.93042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "STEHxJpwBZxFdQl0zUKxo", + "type": "topic", + "position": { + "x": 227.7183398541871, + "y": 2334.43042937083 + }, + "selected": false, + "data": { + "label": "Performance", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197, + "height": 49 + }, + "positionAbsolute": { + "x": 227.7183398541871, + "y": 2334.43042937083 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "CYjsXIOWtP5DJmYS-qR-s", + "type": "subtopic", + "position": { + "x": 333.86672552017467, + "y": 2431.43042937083 + }, + "selected": false, + "data": { + "label": "Deferrable Views", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 199, + "height": 49, + "style": { + "width": 199, + "height": 49 + }, + "positionAbsolute": { + "x": 333.86672552017467, + "y": 2431.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "1WIKjn3nxYDMIhBL17aYQ", + "type": "subtopic", + "position": { + "x": 333.86672552017467, + "y": 2484.43042937083 + }, + "selected": false, + "data": { + "label": "Image Optimization", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 199, + "height": 49, + "style": { + "width": 199, + "height": 49 + }, + "resizing": false, + "positionAbsolute": { + "x": 333.86672552017467, + "y": 2484.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "pRSR5PEbkJXAJ1LPyK-EE", + "type": "subtopic", + "position": { + "x": 333.86672552017467, + "y": 2537.43042937083 + }, + "selected": false, + "data": { + "label": "Zone Pollution", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 199, + "height": 49, + "style": { + "width": 199, + "height": 49 + }, + "positionAbsolute": { + "x": 333.86672552017467, + "y": 2537.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "yxUtSBzJPRcS-IuPsyp-W", + "type": "subtopic", + "position": { + "x": 333.86672552017467, + "y": 2590.43042937083 + }, + "selected": false, + "data": { + "label": "Slow Computations", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 199, + "height": 49, + "style": { + "width": 199, + "height": 49 + }, + "positionAbsolute": { + "x": 333.86672552017467, + "y": 2590.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "NY_MfBNgNmloiRGcIvfJ1", + "type": "subtopic", + "position": { + "x": 333.86672552017467, + "y": 2643.43042937083 + }, + "selected": false, + "data": { + "label": "Hydration", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 199, + "height": 49, + "style": { + "width": 199, + "height": 49 + }, + "positionAbsolute": { + "x": 333.86672552017467, + "y": 2643.43042937083 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "lLa-OnHV6GzkNFZu29BIT", + "type": "topic", + "position": { + "x": 76.26672552017453, + "y": 2829.7304293708257 + }, + "selected": false, + "data": { + "label": "Testing", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 193, + "height": 49, + "style": { + "width": 193, + "height": 49 + }, + "resizing": false, + "positionAbsolute": { + "x": 76.26672552017453, + "y": 2829.7304293708257 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "HU1eTYB321C93qh_U7ioF", + "type": "subtopic", + "position": { + "x": -70.13327447982533, + "y": 2537.7304293708257 + }, + "selected": false, + "data": { + "label": "Testing Services", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 272, + "height": 49, + "style": { + "width": 272 + }, + "positionAbsolute": { + "x": -70.13327447982533, + "y": 2537.7304293708257 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "rH13NBFG02hnn5eABSNCY", + "type": "subtopic", + "position": { + "x": -70.13327447982533, + "y": 2590.7304293708257 + }, + "selected": false, + "data": { + "label": "Testing Pipes", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 272, + "height": 49, + "style": { + "width": 272 + }, + "positionAbsolute": { + "x": -70.13327447982533, + "y": 2590.7304293708257 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "4xt0m5jkUqB4Z-krcFBuL", + "type": "subtopic", + "position": { + "x": -70.13327447982533, + "y": 2643.7304293708257 + }, + "selected": false, + "data": { + "label": "Testing Requests", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 272, + "height": 49, + "style": { + "width": 272 + }, + "positionAbsolute": { + "x": -70.13327447982533, + "y": 2643.7304293708257 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "TGRZBizDy83JKg_MhnRdX", + "type": "subtopic", + "position": { + "x": -70.13327447982533, + "y": 2749.7304293708257 + }, + "selected": false, + "data": { + "label": "Services with Dependencies", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 272, + "height": 49, + "style": { + "width": 272, + "height": 49 + }, + "positionAbsolute": { + "x": -70.13327447982533, + "y": 2749.7304293708257 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "cXVy1lx2XqY_j8gxz-y60", + "type": "subtopic", + "position": { + "x": -70.13327447982533, + "y": 2910.7304293708257 + }, + "selected": false, + "data": { + "label": "Component Bindings", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 272, + "height": 49, + "style": { + "width": 272, + "height": 49 + }, + "positionAbsolute": { + "x": -70.13327447982533, + "y": 2910.7304293708257 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "SGqb5k6OmWit8PA6ZT3js", + "type": "subtopic", + "position": { + "x": -70.13327447982533, + "y": 2696.7304293708257 + }, + "selected": false, + "data": { + "label": "Testing Directives", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 272, + "height": 49, + "style": { + "width": 272 + }, + "positionAbsolute": { + "x": -70.13327447982533, + "y": 2696.7304293708257 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "f5v74Uw54LsB4FgdN6eCd", + "type": "subtopic", + "position": { + "x": -70.13327447982533, + "y": 2963.7304293708257 + }, + "selected": false, + "data": { + "label": "Debugging Tests", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 272, + "height": 49, + "style": { + "width": 272, + "height": 49 + }, + "positionAbsolute": { + "x": -70.13327447982533, + "y": 2963.7304293708257 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "0dYWO_Zvh9J5_6cRjRjvI", + "type": "subtopic", + "position": { + "x": -70.13327447982533, + "y": 3016.7304293708257 + }, + "selected": false, + "data": { + "label": "Component Templates", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 272, + "height": 49, + "style": { + "width": 272, + "height": 49 + }, + "positionAbsolute": { + "x": -70.13327447982533, + "y": 3016.7304293708257 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "bqA2bxPcZrqQ-6QE-YDK1", + "type": "subtopic", + "position": { + "x": -70.13327447982533, + "y": 3069.7304293708257 + }, + "selected": false, + "data": { + "label": "Code Coverage", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "0dYWO_Zvh9J5_6cRjRjvI" + }, + "zIndex": 999, + "width": 272, + "height": 49, + "style": { + "width": 272, + "height": 49 + }, + "positionAbsolute": { + "x": -70.13327447982533, + "y": 3069.7304293708257 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "Xxyx3uzy5TpNhgR1IysMN", + "type": "topic", + "position": { + "x": -335.63327447982533, + "y": 2829.7304293708257 + }, + "selected": false, + "data": { + "label": "Internationalization", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 199, + "height": 49, + "style": { + "width": 199, + "height": 49 + }, + "positionAbsolute": { + "x": -335.63327447982533, + "y": 2829.7304293708257 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "W8OwpEw00xn0GxidlJjdc", + "type": "subtopic", + "position": { + "x": -335.63327447982533, + "y": 2580.7304293708257 + }, + "selected": false, + "data": { + "label": "Localize Package", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 199, + "height": 49, + "style": { + "width": 199, + "height": 49 + }, + "positionAbsolute": { + "x": -335.63327447982533, + "y": 2580.7304293708257 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "dVKl3Z2Rnf6IB064v19Mi", + "type": "subtopic", + "position": { + "x": -335.63327447982533, + "y": 2633.7304293708257 + }, + "selected": false, + "data": { + "label": "Locales by ID", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 199, + "height": 49, + "style": { + "width": 199, + "height": 49 + }, + "positionAbsolute": { + "x": -335.63327447982533, + "y": 2633.7304293708257 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "jL5amGV1BAX_V5cyTIH7d", + "type": "subtopic", + "position": { + "x": -335.63327447982533, + "y": 2686.7304293708257 + }, + "selected": false, + "data": { + "label": "Translation Files", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 199, + "height": 49, + "style": { + "width": 199, + "height": 49 + }, + "positionAbsolute": { + "x": -335.63327447982533, + "y": 2686.7304293708257 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "9ISvaaJ815_cr_KW9vQhT", + "type": "subtopic", + "position": { + "x": -335.63327447982533, + "y": 2739.7304293708257 + }, + "selected": false, + "data": { + "label": "Multiple Locales", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 199, + "height": 49, + "style": { + "width": 199, + "height": 49 + }, + "positionAbsolute": { + "x": -335.63327447982533, + "y": 2739.7304293708257 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "rYJq59Q0YdfK6n3x740Em", + "type": "topic", + "position": { + "x": -345.16916540260297, + "y": 3172.93042937083 + }, + "selected": false, + "data": { + "label": "Animation", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 216, + "height": 49, + "style": { + "width": 216, + "height": 49 + }, + "positionAbsolute": { + "x": -345.16916540260297, + "y": 3172.93042937083 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "Iv2d4sgODqMPzA9gH6RAw", + "type": "subtopic", + "position": { + "x": -345.63327447982533, + "y": 2918.7304293708257 + }, + "selected": false, + "data": { + "label": "Transitions & Triggers", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 216, + "height": 49, + "style": { + "width": 216, + "height": 49 + }, + "positionAbsolute": { + "x": -345.63327447982533, + "y": 2918.7304293708257 + }, + "dragging": false, + "resizing": false, + "selectable": true, + "focusable": true + }, + { + "id": "Unjknmb4b2LY-nUVvvF7_", + "type": "subtopic", + "position": { + "x": -345.63327447982533, + "y": 2971.7304293708257 + }, + "selected": false, + "data": { + "label": "Complex Sequences", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 216, + "height": 49, + "style": { + "width": 216, + "height": 49 + }, + "positionAbsolute": { + "x": -345.63327447982533, + "y": 2971.7304293708257 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "M1CU2Yq6dLp4yOuGV0fhF", + "type": "subtopic", + "position": { + "x": -345.63327447982533, + "y": 3024.7304293708257 + }, + "selected": false, + "data": { + "label": "Reusable Animations", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 216, + "height": 49, + "style": { + "width": 216, + "height": 49 + }, + "positionAbsolute": { + "x": -345.63327447982533, + "y": 3024.7304293708257 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "id": "x91jWP81oCTeVEwzX8FbK", + "type": "subtopic", + "position": { + "x": -345.63327447982533, + "y": 3077.7304293708257 + }, + "selected": false, + "data": { + "label": "Route Transitions", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 216, + "height": 49, + "style": { + "width": 216, + "height": 49 + }, + "positionAbsolute": { + "x": -345.63327447982533, + "y": 3077.7304293708257 + }, + "dragging": false, + "selectable": true, + "focusable": true + }, + { + "width": 89, + "height": 49, + "id": "eRIUCGaDMDAz6kQYSN-AS", + "type": "button", + "position": { + "x": -292.49114007976596, + "y": 3373.8197767726365 + }, + "selected": false, + "data": { + "label": "Vue.js", + "href": "https://roadm.sh/vue", + "color": "#FFFFFf", + "backgroundColor": "#4136D4", + "style": { + "fontSize": 17 + }, + "borderColor": "#4136D4", + "oldId": "U0fJo2a3vnaodNJhfZ78I" + }, + "zIndex": 999, + "dragging": false, + "positionAbsolute": { + "x": -292.49114007976596, + "y": 3373.8197767726365 + }, + "style": {}, + "focusable": true, + "resizing": false, + "selectable": true + } + ], + "edges": [ + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "sourceHandle": "x2", + "target": "GV_zWF6rSWg5bqgiXhOEf", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "M0aRyhxjzTWUOW95D1g1y", + "selected": false, + "type": "smoothstep", + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "sourceHandle": "x2", + "target": "GV_zWF6rSWg5bqgiXhOEf", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "Xw4lLz2zWuTkNu8r4oheF", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "sourceHandle": "x2", + "target": "GV_zWF6rSWg5bqgiXhOEf", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "mbCXMk97_HKXG3d4TxBOC", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "iogwMmOvub2ZF4zgg6WyF", + "sourceHandle": "x2", + "target": "DAwKHBng7Tytlcd2_8GOR", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-iogwMmOvub2ZF4zgg6WyFx2-DAwKHBng7Tytlcd2_8GORw1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "DAwKHBng7Tytlcd2_8GOR", + "sourceHandle": "x2", + "target": "KDd40JOAvZ8O1mfhTYB3K", + "targetHandle": "w2", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-DAwKHBng7Tytlcd2_8GORx2-KDd40JOAvZ8O1mfhTYB3Kw2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "KDd40JOAvZ8O1mfhTYB3K", + "sourceHandle": "z2", + "target": "EbFRcy4s6yzzIApBqU77Y", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-KDd40JOAvZ8O1mfhTYB3Kz2-EbFRcy4s6yzzIApBqU77Yy1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "KDd40JOAvZ8O1mfhTYB3K", + "sourceHandle": "z2", + "target": "hpShWwL0M57ZAzqkB4I8t", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-KDd40JOAvZ8O1mfhTYB3Kz2-hpShWwL0M57ZAzqkB4I8ty1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "KDd40JOAvZ8O1mfhTYB3K", + "sourceHandle": "z2", + "target": "DE3cMpeRYuUPw2ADtfS-3", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-KDd40JOAvZ8O1mfhTYB3Kz2-DE3cMpeRYuUPw2ADtfS-3y1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "KDd40JOAvZ8O1mfhTYB3K", + "sourceHandle": "x2", + "target": "zv1y-I1fIEXtTkb8tOQU0", + "targetHandle": "w2", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-KDd40JOAvZ8O1mfhTYB3Kx2-zv1y-I1fIEXtTkb8tOQU0w2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "zv1y-I1fIEXtTkb8tOQU0", + "sourceHandle": "x2", + "target": "kGnKzCkQCNFEdgCBRtNuW", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-zv1y-I1fIEXtTkb8tOQU0x2-kGnKzCkQCNFEdgCBRtNuWw1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "kGnKzCkQCNFEdgCBRtNuW", + "sourceHandle": "z2", + "target": "b_kdNS9PDupcUftslkf9i", + "targetHandle": "y1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-kGnKzCkQCNFEdgCBRtNuWz2-b_kdNS9PDupcUftslkf9iy1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "b_kdNS9PDupcUftslkf9i", + "sourceHandle": "x2", + "target": "6fhe9xAi_RSVfa-KKbcbV", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-b_kdNS9PDupcUftslkf9ix2-6fhe9xAi_RSVfa-KKbcbVw1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "6fhe9xAi_RSVfa-KKbcbV", + "sourceHandle": "x2", + "target": "kGzlumFdZFxTRZ3HnCGFO", + "targetHandle": "w2", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-6fhe9xAi_RSVfa-KKbcbVx2-kGzlumFdZFxTRZ3HnCGFOw2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "kGzlumFdZFxTRZ3HnCGFO", + "sourceHandle": "x2", + "target": "a74v78SvGtWduZpXs7wSq", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-kGzlumFdZFxTRZ3HnCGFOx2-a74v78SvGtWduZpXs7wSqw1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "a74v78SvGtWduZpXs7wSq", + "sourceHandle": "y2", + "target": "CpsoIVoCKaZnM_-BbXbCh", + "targetHandle": "z2", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-a74v78SvGtWduZpXs7wSqy2-CpsoIVoCKaZnM_-BbXbChz2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "CpsoIVoCKaZnM_-BbXbCh", + "sourceHandle": "x2", + "target": "8u9uHCRt9RU57erBy79PP", + "targetHandle": "w1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-CpsoIVoCKaZnM_-BbXbChx2-8u9uHCRt9RU57erBy79PPw1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "CpsoIVoCKaZnM_-BbXbCh", + "sourceHandle": "y2", + "target": "Q36LQds8k_cSjijvXyWOM", + "targetHandle": "z1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-CpsoIVoCKaZnM_-BbXbChy2-Q36LQds8k_cSjijvXyWOMz1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "Q36LQds8k_cSjijvXyWOM", + "sourceHandle": "z2", + "target": "8UY0HAvjY7bdbFpt-MM1u", + "targetHandle": "y1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-Q36LQds8k_cSjijvXyWOMz2-8UY0HAvjY7bdbFpt-MM1uy1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "8UY0HAvjY7bdbFpt-MM1u", + "sourceHandle": "x2", + "target": "AKPhbg10xXjccO7UBh5eJ", + "targetHandle": "w2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-8UY0HAvjY7bdbFpt-MM1ux2-AKPhbg10xXjccO7UBh5eJw2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "8UY0HAvjY7bdbFpt-MM1u", + "sourceHandle": "z2", + "target": "lfp7PIjwITU5gBITQdirD", + "targetHandle": "y1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-8UY0HAvjY7bdbFpt-MM1uz2-lfp7PIjwITU5gBITQdirDy1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "lfp7PIjwITU5gBITQdirD", + "sourceHandle": "z2", + "target": "krXA6ua7E3m4IIpFkgQZe", + "targetHandle": "w1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-lfp7PIjwITU5gBITQdirDz2-krXA6ua7E3m4IIpFkgQZew1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "u1TG8i145o0RKhOR_5epf", + "sourceHandle": "y2", + "target": "Mqe_s-nwBqAL6X7OGRHEN", + "targetHandle": "z1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-u1TG8i145o0RKhOR_5epfy2-Mqe_s-nwBqAL6X7OGRHENz1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "Mqe_s-nwBqAL6X7OGRHEN", + "sourceHandle": "y2", + "target": "m4WBnx_9h01Jl6Q1sxi4Y", + "targetHandle": "z2", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-Mqe_s-nwBqAL6X7OGRHENy2-m4WBnx_9h01Jl6Q1sxi4Yz2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "EbJib-XfZFF9bpCtL3aBs", + "sourceHandle": "z2", + "target": "jfHaS8TqE4tcAo59K8Nkn", + "targetHandle": "y1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-EbJib-XfZFF9bpCtL3aBsz2-jfHaS8TqE4tcAo59K8Nkny1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "jfHaS8TqE4tcAo59K8Nkn", + "sourceHandle": "x2", + "target": "b-0yQ74zHtAxI9aRLBohc", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-jfHaS8TqE4tcAo59K8Nknx2-b-0yQ74zHtAxI9aRLBohcw1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "b-0yQ74zHtAxI9aRLBohc", + "sourceHandle": "z2", + "target": "kauQofxCmpktXPcnzid17", + "targetHandle": "y2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-b-0yQ74zHtAxI9aRLBohcz2-kauQofxCmpktXPcnzid17y2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "EbJib-XfZFF9bpCtL3aBs", + "sourceHandle": "z2", + "target": "T3MmS3bvMMgCUbOk3ktU7", + "targetHandle": "w1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-EbJib-XfZFF9bpCtL3aBsz2-T3MmS3bvMMgCUbOk3ktU7w1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "b-0yQ74zHtAxI9aRLBohc", + "sourceHandle": "x2", + "target": "mm6c7GLQEwoQdAHdAYzGh", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-b-0yQ74zHtAxI9aRLBohcx2-mm6c7GLQEwoQdAHdAYzGhw1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "mm6c7GLQEwoQdAHdAYzGh", + "sourceHandle": "z2", + "target": "VNG9DdXlS6R1OJ6Lrn4Lt", + "targetHandle": "y2", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-mm6c7GLQEwoQdAHdAYzGhz2-VNG9DdXlS6R1OJ6Lrn4Lty2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "VNG9DdXlS6R1OJ6Lrn4Lt", + "sourceHandle": "z2", + "target": "0FvH7KPs9ag02QkD1HEJ-", + "targetHandle": "y2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-VNG9DdXlS6R1OJ6Lrn4Ltz2-0FvH7KPs9ag02QkD1HEJ-y2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "VNG9DdXlS6R1OJ6Lrn4Lt", + "sourceHandle": "z2", + "target": "CZ1YRyai8Ds-ry4A8jVbr", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-VNG9DdXlS6R1OJ6Lrn4Ltz2-CZ1YRyai8Ds-ry4A8jVbry1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "VNG9DdXlS6R1OJ6Lrn4Lt", + "sourceHandle": "z2", + "target": "0s-QhN5aZh2F3tLJFKEyR", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-VNG9DdXlS6R1OJ6Lrn4Ltz2-0s-QhN5aZh2F3tLJFKEyRy1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "VNG9DdXlS6R1OJ6Lrn4Lt", + "sourceHandle": "z2", + "target": "8i_JD1P4gIhY1rdldwLC2", + "targetHandle": "y2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-VNG9DdXlS6R1OJ6Lrn4Ltz2-8i_JD1P4gIhY1rdldwLC2y2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "VNG9DdXlS6R1OJ6Lrn4Lt", + "sourceHandle": "z2", + "target": "5-RCB8AiDbkdIFYNXKWge", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-VNG9DdXlS6R1OJ6Lrn4Ltz2-5-RCB8AiDbkdIFYNXKWgey1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "lLa-OnHV6GzkNFZu29BIT", + "sourceHandle": "y2", + "target": "Xxyx3uzy5TpNhgR1IysMN", + "targetHandle": "z1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-lLa-OnHV6GzkNFZu29BITy2-Xxyx3uzy5TpNhgR1IysMNz1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "Xxyx3uzy5TpNhgR1IysMN", + "sourceHandle": "w2", + "target": "9ISvaaJ815_cr_KW9vQhT", + "targetHandle": "x2", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-Xxyx3uzy5TpNhgR1IysMNw2-9ISvaaJ815_cr_KW9vQhTx2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "rYJq59Q0YdfK6n3x740Em", + "sourceHandle": "w2", + "target": "x91jWP81oCTeVEwzX8FbK", + "targetHandle": "x1", + "data": { + "edgeStyle": "dashed" + }, + "id": "reactflow__edge-rYJq59Q0YdfK6n3x740Emw2-x91jWP81oCTeVEwzX8FbKx1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "rYJq59Q0YdfK6n3x740Em", + "sourceHandle": "x2", + "target": "GV_zWF6rSWg5bqgiXhOEf", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "reactflow__edge-rYJq59Q0YdfK6n3x740Emx2-GV_zWF6rSWg5bqgiXhOEfw1", + "selected": false, + "selectable": true, + "focusable": true + } + ] } \ No newline at end of file diff --git a/src/data/roadmaps/angular/angular.md b/src/data/roadmaps/angular/angular.md index 9f443dcfb..8281687be 100644 --- a/src/data/roadmaps/angular/angular.md +++ b/src/data/roadmaps/angular/angular.md @@ -1,6 +1,7 @@ --- jsonUrl: '/jsons/roadmaps/angular.json' pdfUrl: '/pdfs/roadmaps/angular.pdf' +renderer: 'editor' order: 4 briefTitle: 'Angular' briefDescription: 'Step by step guide to become a Angular Developer in 2024' diff --git a/src/data/roadmaps/angular/content/100-typescript-basics/100-what-is-typescript.md b/src/data/roadmaps/angular/content/100-typescript-basics/100-what-is-typescript.md deleted file mode 100644 index 2601ea6b7..000000000 --- a/src/data/roadmaps/angular/content/100-typescript-basics/100-what-is-typescript.md +++ /dev/null @@ -1,11 +0,0 @@ -# What is Typescript - -TypeScript is a strongly typed, object-oriented, compiled programming language that builds on JavaScript. It is a superset of the JavaScript language, designed to give you better tooling at any scale. TypeScript calls itself “JavaScript with syntax for types.” In short, it is JavaScript with some additional features. The secret to the success of TypeScript is in the type checking, ensuring that the data flowing through the program is of the correct kind of data. - -Visit the following resources to learn more: - -- [@article@What is TypeScript](https://thenewstack.io/what-is-typescript/) -- [@article@W3Schools – TypeScript Tutorial](https://www.w3schools.com/typescript/) -- [@article@Tutorials point – TypeScript Tutorial](https://www.tutorialspoint.com/typescript/index.htm) -- [@video@TypeScript Crash Course for Beginners](https://www.youtube.com/watch?v=d56mG7DezGs) -- [@feed@Explore top posts about TypeScript](https://app.daily.dev/tags/typescript?ref=roadmapsh) diff --git a/src/data/roadmaps/angular/content/100-typescript-basics/101-why-use-typescript.md b/src/data/roadmaps/angular/content/100-typescript-basics/101-why-use-typescript.md deleted file mode 100644 index 0dad5c2df..000000000 --- a/src/data/roadmaps/angular/content/100-typescript-basics/101-why-use-typescript.md +++ /dev/null @@ -1,15 +0,0 @@ -# Why use TypeScript - -TypeScript extends JavaScript, providing a better developer experience. The benefits of using TypeScript over JavaScript include: - -- **Static typing** – TypeScript comes with optional static typing and a type inference system, which means that a variable declared with no type may be inferred by TypeScript based on its value. -- **Object-oriented programming** – TypeScript supports object-oriented programming concepts like classes, inheritance, etc. -- **Compile time checks** – JavaScript is an interpreted programming language. There is no compilation involved. Hence, the errors get caught during the runtime. Since TypeScript compiles into JavaScript, errors get reported during the compile time rather than the runtime. -- **Code editor support** – IDEs or code editors like VS Code support autocomplete for a TypeScript codebase. They also provide inline documentation and highlight the errors. -- **Integration with existing JavaScript Packages** – You might want to use an npm package written in JavaScript. Since TypeScript is a superset of JavaScript, you can import and use that package. Moreover, the TypeScript community creates and maintains type definitions for popular packages that can be utilized in your project. - -Visit the following resources to learn more: - -- [@article@linguinecode - Reasons to use TypeScript](https://linguinecode.com/post/5-reasons-why-to-use-typescript) -- [@article@Codemotion - Reasons to use TypeScript](https://www.codemotion.com/magazine/backend/why-you-should-use-typescript-for-your-next-project/) -- [@feed@Explore top posts about TypeScript](https://app.daily.dev/tags/typescript?ref=roadmapsh) diff --git a/src/data/roadmaps/angular/content/100-typescript-basics/102-structural-typing.md b/src/data/roadmaps/angular/content/100-typescript-basics/102-structural-typing.md deleted file mode 100644 index 433c8a7c7..000000000 --- a/src/data/roadmaps/angular/content/100-typescript-basics/102-structural-typing.md +++ /dev/null @@ -1,11 +0,0 @@ -# Structural Typing - -Type compatibility in TypeScript is based on structural subtyping. `Structural typing` is a way of relating types based solely on their members. This is in contrast with nominal typing. - -TypeScript’s structural type system was designed based on how JavaScript code is typically written. Because JavaScript widely uses anonymous objects like function expressions and object literals, it’s much more natural to represent the relationships found in JavaScript libraries with a structural type system instead of a nominal one. - -Visit the following resources to learn more: - -- [@article@Structural typings — Medium](https://medium.com/redox-techblog/structural-typing-in-typescript-4b89f21d6004) -- [@article@Structural typings — Typescriptlang](https://www.typescriptlang.org/docs/handbook/type-compatibility.html) -- [@video@Structural typing video for Beginners](https://www.youtube.com/watch?v=kWtwsX_rT3k) diff --git a/src/data/roadmaps/angular/content/100-typescript-basics/103-type-inference.md b/src/data/roadmaps/angular/content/100-typescript-basics/103-type-inference.md deleted file mode 100644 index 2a9c015c4..000000000 --- a/src/data/roadmaps/angular/content/100-typescript-basics/103-type-inference.md +++ /dev/null @@ -1,8 +0,0 @@ -# Type Inference - -In TypeScript, several places where `type inference` is used to provide type information when there is no explicit type annotation. The type of the x variable is inferred to be a number. This inference occurs when variables and members are initialized, set parameter default values are, and determine function return types. For example, `let x: number`. In most cases, type inference is straightforward. In the following sections, we’ll explore some nuances in how types are inferred. For example, `let x: (number | null)[]` - -Visit the following resources to learn more: - -- [@article@Type Inference - typescriptlang](https://www.typescriptlang.org/docs/handbook/type-inference.html) -- [@video@Type Inference video for Beginners](https://www.youtube.com/watch?v=3ui_st7rtfA) diff --git a/src/data/roadmaps/angular/content/100-typescript-basics/104-union-types.md b/src/data/roadmaps/angular/content/100-typescript-basics/104-union-types.md deleted file mode 100644 index cbc4cdc43..000000000 --- a/src/data/roadmaps/angular/content/100-typescript-basics/104-union-types.md +++ /dev/null @@ -1,9 +0,0 @@ -# Union Types - -In TypeScript, we can define a variable that can have multiple types of values. In other words, TypeScript can combine one or two types of data (i.e., number, string, etc.) in a single type, a union type. Union types are a powerful way to express a variable with multiple types. Two or more data types can be combined using the pipe ('|') symbol between the types. For example, `(type1 | type2 | type3 | .. | typeN)`. - -Visit the following resources to learn more: - -- [@article@Union Types - typescriptlang](https://www.typescriptlang.org/docs/handbook/unions-and-intersections.html) -- [@video@Union Type video for Beginners](https://www.youtube.com/watch?v=uxjpm4W5pCo) -- [@article@Union Types - typescriptlang](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types) \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/100-typescript-basics/105-builtin-types.md b/src/data/roadmaps/angular/content/100-typescript-basics/105-builtin-types.md deleted file mode 100644 index 8618e3f72..000000000 --- a/src/data/roadmaps/angular/content/100-typescript-basics/105-builtin-types.md +++ /dev/null @@ -1,8 +0,0 @@ -# Builtin Types - -The Builtin types represent the different types of values supported by the language. The builtin types check the validity of the supplied values before they are stored or manipulated by the program. This ensures that the code behaves as expected. The Builtin types further allow for richer code hinting and automated documentation too. - -Visit the following resources to learn more: - -- [@article@TypeScript Types - Tutorialspoint](https://www.tutorialspoint.com/typescript/typescript_types.htm) -- [@video@Builtin Type video for Beginners](https://www.youtube.com/watch?v=Nt9ajBrqV_M) diff --git a/src/data/roadmaps/angular/content/100-typescript-basics/106-type-guard.md b/src/data/roadmaps/angular/content/100-typescript-basics/106-type-guard.md deleted file mode 100644 index b7281fe47..000000000 --- a/src/data/roadmaps/angular/content/100-typescript-basics/106-type-guard.md +++ /dev/null @@ -1,12 +0,0 @@ -# Type Guard - -A type guard is a TypeScript technique used to get information about the type of a variable, usually within a conditional block. Type guards are regular functions that return a boolean, taking a type and telling TypeScript if it can be narrowed down to something more specific. Type guards have the unique property of assuring that the value tested is of a set type depending on the returned boolean. - -TypeScript uses built-in JavaScript operators like `typeof`, `instanceof`, and the `in` operator, which is used to determine if an object contains a property. Type guards enable you to instruct the TypeScript compiler to infer a specific type for a variable in a particular context, ensuring that the type of an argument is what you say it is. - -Type guards are typically used for narrowing a type and are pretty similar to feature detection, allowing you to detect the correct methods, prototypes, and properties of a value. Therefore, you can quickly figure out how to handle that value. - -Visit the following resources to learn more: - -- [@article@Types Guards - Blog](https://blog.logrocket.com/how-to-use-type-guards-typescript/) -- [@video@TypeScript Type Guards Explained](https://www.youtube.com/watch?v=FEeEItMtDwg) \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/100-typescript-basics/index.md b/src/data/roadmaps/angular/content/100-typescript-basics/index.md deleted file mode 100644 index 00198da53..000000000 --- a/src/data/roadmaps/angular/content/100-typescript-basics/index.md +++ /dev/null @@ -1,9 +0,0 @@ -# Typescript Basics - -In order to enter into the world of Angular application development, typescript is necessary and it is the primary language here. Typescript is a superset of JavaScript. It comes with design-time support which is useful for type safety and tooling. Since, browsers cannot execute the TypeScript directly, it will be 'Transpiled' into JavaScript using the tsc compiler. - -Visit the following resources to learn more: - -- [@article@Typescript a Beginners Guide](https://medium.com/jspoint/typescript-a-beginners-guide-6956fe8bcf9e) -- [@article@TypeScript Playground](https://www.typescriptlang.org/play) -- [@feed@Explore top posts about TypeScript](https://app.daily.dev/tags/typescript?ref=roadmapsh) diff --git a/src/data/roadmaps/angular/content/101-rxjs-basics/102-marble-diagrams.md b/src/data/roadmaps/angular/content/101-rxjs-basics/102-marble-diagrams.md deleted file mode 100644 index 8d0f4ca10..000000000 --- a/src/data/roadmaps/angular/content/101-rxjs-basics/102-marble-diagrams.md +++ /dev/null @@ -1,10 +0,0 @@ -# Marble Diagrams - -Marble testing allows you to test asynchronous RxJS code synchronously and step-by-step with the help of RxJS TestScheduler test utility and using virtual time steps. - -Visit the following resources to learn more: - -- [@article@Understanding Marble Diagrams for Reactive Streams](https://medium.com/@jshvarts/read-marble-diagrams-like-a-pro-3d72934d3ef5) -- [@article@Interactive Diagrams](https://rxmarbles.com/#from) -- [@video@How to Read RxJS Marble Diagrams](https://www.youtube.com/watch?v=m6jkzIHMEdg) -- [@video@Observables Part 4 - Marble Diagrams](https://www.youtube.com/watch?v=wXcPenSfdo0) diff --git a/src/data/roadmaps/angular/content/102-angular-basics/100-angularjs-vs-angular.md b/src/data/roadmaps/angular/content/102-angular-basics/100-angularjs-vs-angular.md deleted file mode 100644 index c30d6886f..000000000 --- a/src/data/roadmaps/angular/content/102-angular-basics/100-angularjs-vs-angular.md +++ /dev/null @@ -1,9 +0,0 @@ -# AngularJS vs. Angular - -AngularJS was the older version of Angular, whose support officially ended in January 2022. Angular is a component-based front-end development framework built on TypeScript, which includes a collection of well-integrated libraries that include features like routing, forms management, client-server communication, and more. - -Visit the following resources to learn more: - -- [@official@AngularJS Website](https://angularjs.org/) -- [@official@Official - Welcome to the Angular tutorial](https://angular.dev/tutorials/learn-angular) -- [@feed@Explore top posts about Angular](https://app.daily.dev/tags/angular?ref=roadmapsh) diff --git a/src/data/roadmaps/angular/content/102-angular-basics/index.md b/src/data/roadmaps/angular/content/102-angular-basics/index.md deleted file mode 100644 index 049bbe2ed..000000000 --- a/src/data/roadmaps/angular/content/102-angular-basics/index.md +++ /dev/null @@ -1,5 +0,0 @@ -# Angular Basics - -Angular is an strong front-end JavaScript framework which means that it enforces a certain style of application development and project structure that developers need to follow to develop apps with Angular. However, it also offers enough flexibility to allow you to structure your project in an understandable and manageable manner. - -In this module, we will have a look at some of the most basic concepts that you need to understand before diving into the framework with more advanced concepts. diff --git a/src/data/roadmaps/angular/content/103-angular-cli/100-ng-build.md b/src/data/roadmaps/angular/content/103-angular-cli/100-ng-build.md deleted file mode 100644 index 72da2e4f0..000000000 --- a/src/data/roadmaps/angular/content/103-angular-cli/100-ng-build.md +++ /dev/null @@ -1,8 +0,0 @@ -# Ng build - -The command can be used to build a project of type "application" or "library". When used to build a library, a different builder is invoked, and only the ts-config, configuration, and watch options are applied. All other options apply only to building applications. - -Visit the following resources to learn more: - -- [@official@Angular CLI - ng build](https://angular.dev/cli/build) -- [@video@Building an Angular project](https://www.youtube.com/watch?v=VB6WuCPDwz0) diff --git a/src/data/roadmaps/angular/content/103-angular-cli/101-ng-serve.md b/src/data/roadmaps/angular/content/103-angular-cli/101-ng-serve.md deleted file mode 100644 index 75249d6e6..000000000 --- a/src/data/roadmaps/angular/content/103-angular-cli/101-ng-serve.md +++ /dev/null @@ -1,8 +0,0 @@ -# Ng serve - -ng serve — This command builds, deploy, serves and every time watches your code changes. if find any change in code it builds and serves that code automatically. How do Angular builds? After coding our Angular apps using TypeScript, we use the Angular CLI command to build the app. - -Visit the following resources to learn more: - -- [@official@Angular CLI - ng serve](https://angular.dev/cli/serve) -- [@video@Running a project with ng serve](https://www.youtube.com/watch?v=-w-RfHcLt5U) diff --git a/src/data/roadmaps/angular/content/103-angular-cli/102-ng-generate.md b/src/data/roadmaps/angular/content/103-angular-cli/102-ng-generate.md deleted file mode 100644 index 349a947be..000000000 --- a/src/data/roadmaps/angular/content/103-angular-cli/102-ng-generate.md +++ /dev/null @@ -1,8 +0,0 @@ -# Ng generate - -ng generate is used to create the component in angular project. These are the two main ways to generate a new component in Angular: using ng g c , and using ng generate component . Using either of these two commands, the new component can be generated pretty easily and followed by the suitable component name of your choice. - -Visit the following resources to learn more: - -- [@official@Angular CLI - ng generate](https://angular.dev/cli/generate) -- [@video@Angular cli generate component](https://www.youtube.com/watch?v=NlHlu_zzmo4) diff --git a/src/data/roadmaps/angular/content/103-angular-cli/103-ng-test.md b/src/data/roadmaps/angular/content/103-angular-cli/103-ng-test.md deleted file mode 100644 index ba49aa17f..000000000 --- a/src/data/roadmaps/angular/content/103-angular-cli/103-ng-test.md +++ /dev/null @@ -1,10 +0,0 @@ -# Ng test - -ng test is used to runs unit tests in angular project. - -`ng test [options]` | `ng t [options]` - -Visit the following resources to learn more: - -- [@official@Angular CLI - ng test](https://angular.dev/cli/test) -- [@video@Angular Ng test commands](https://www.youtube.com/watch?v=n1O_eRwzRKA) diff --git a/src/data/roadmaps/angular/content/103-angular-cli/104-ng-e2e.md b/src/data/roadmaps/angular/content/103-angular-cli/104-ng-e2e.md deleted file mode 100644 index 5cffa2667..000000000 --- a/src/data/roadmaps/angular/content/103-angular-cli/104-ng-e2e.md +++ /dev/null @@ -1,9 +0,0 @@ -# Ng e2e - -End-to-end testing (E2E) of Angular applications is performed using the Protractor testing framework, which is created by the Angular team themselves. Protractor can perform end to end tests on Angular applications that are running in a real browser by interacting with it, similar to that of an end-user. - -Visit the following resources to learn more: - -- [@official@Angular CLI - ng e2e](https://angular.dev/cli/e2e) -- [@video@Angular cli generate component](https://www.youtube.com/watch?v=3vFnhzEGfew) -- [@feed@Explore top posts about Testing](https://app.daily.dev/tags/testing?ref=roadmapsh) diff --git a/src/data/roadmaps/angular/content/103-angular-cli/105-ng-new.md b/src/data/roadmaps/angular/content/103-angular-cli/105-ng-new.md deleted file mode 100644 index 823033b85..000000000 --- a/src/data/roadmaps/angular/content/103-angular-cli/105-ng-new.md +++ /dev/null @@ -1,12 +0,0 @@ -# Ng new - -`$ ng new [name]` - -That’s the default usage of the command and creating a new project folder with name. The project which is created in that folder is containing: - -The default Angular project, All dependencies installed in node_modules folder , Testing files for each components - -Visit the following resources to learn more: - -- [@official@Angular CLI - ng new](https://angular.dev/cli/new) -- [@video@ng New command](https://www.youtube.com/watch?v=NdEpZezptkQ) diff --git a/src/data/roadmaps/angular/content/104-templates/index.md b/src/data/roadmaps/angular/content/104-templates/index.md deleted file mode 100644 index 22a239597..000000000 --- a/src/data/roadmaps/angular/content/104-templates/index.md +++ /dev/null @@ -1,7 +0,0 @@ -# Templates - -A template is a form of HTML that tells Angular how to render the component. - -Visit the following resources to learn more: - -- [@official@Anatomy of a component](https://angular.dev/guide/components) diff --git a/src/data/roadmaps/angular/content/105-rendering-topics/index.md b/src/data/roadmaps/angular/content/105-rendering-topics/index.md deleted file mode 100644 index 376c9920b..000000000 --- a/src/data/roadmaps/angular/content/105-rendering-topics/index.md +++ /dev/null @@ -1 +0,0 @@ -# Rendering topics diff --git a/src/data/roadmaps/angular/content/107-routing/index.md b/src/data/roadmaps/angular/content/107-routing/index.md deleted file mode 100644 index 1c661cffb..000000000 --- a/src/data/roadmaps/angular/content/107-routing/index.md +++ /dev/null @@ -1,8 +0,0 @@ -# Routing - -Routing in Angular allows the users to create a single-page application with multiple views and navigation between them. Users can switch between these views without losing the application state and properties. - -Visit the following resources to learn more: - -- [@official@Angular Routing](https://angular.dev/guide/routing) -- [@video@Angular Tutorial - Routing and Navigation](https://www.youtube.com/watch?v=Nehk4tBxD4o) diff --git a/src/data/roadmaps/angular/content/108-services-remote-data/100-dependency-injection.md b/src/data/roadmaps/angular/content/108-services-remote-data/100-dependency-injection.md deleted file mode 100644 index 7f4c9db73..000000000 --- a/src/data/roadmaps/angular/content/108-services-remote-data/100-dependency-injection.md +++ /dev/null @@ -1,9 +0,0 @@ -# Dependency Injection - -Dependency Injection (DI) is a design pattern that creates the dependencies of a class and provides those objects to the class when required. Angular being a nice framework, provides a built-in dependency injection mechanism that creates and provides a runtime version of a dependency value using dependency injectors. - -Visit the following resources to learn more: - -- [@official@Understanding dependency injection](https://angular.dev/guide/di/dependency-injection) -- [@video@Introduction of Dependency injection](https://www.youtube.com/watch?v=OFPIGlxunL0) -- [@feed@Explore top posts about Dependency Injection](https://app.daily.dev/tags/dependency-injection?ref=roadmapsh) diff --git a/src/data/roadmaps/angular/content/108-services-remote-data/index.md b/src/data/roadmaps/angular/content/108-services-remote-data/index.md deleted file mode 100644 index 7bf0b74c5..000000000 --- a/src/data/roadmaps/angular/content/108-services-remote-data/index.md +++ /dev/null @@ -1,8 +0,0 @@ -# Services - -Components shouldn't fetch or save data directly and shouldn't knowingly present fake data. They should focus on presenting data and delegate data access to a service. Service is where all the remote API calls exist to retrieve and provide data to components. - -Visit the following resources to learn more: - -- [@official@Creating an injectable service](https://angular.dev/guide/di/creating-injectable-service) -- [@official@Understanding communicating with backend services using HTTP](https://angular.dev/guide/http) diff --git a/src/data/roadmaps/angular/content/112-creating-a-custom-x/103-standalone-component.md b/src/data/roadmaps/angular/content/112-creating-a-custom-x/103-standalone-component.md deleted file mode 100644 index 284500d24..000000000 --- a/src/data/roadmaps/angular/content/112-creating-a-custom-x/103-standalone-component.md +++ /dev/null @@ -1,7 +0,0 @@ -# Standalone Component - -Standalone components provide a simplified way to build Angular applications. Standalone components, directives, and pipes aim to streamline the authoring experience by reducing the need for NgModules. Existing applications can optionally and incrementally adopt the new standalone style without any breaking changes. - -Visit the following resources to learn more: - -- [@official@Angular Website](https://angular.dev/guide/components/importing) diff --git a/src/data/roadmaps/angular/content/112-creating-a-custom-x/index.md b/src/data/roadmaps/angular/content/112-creating-a-custom-x/index.md deleted file mode 100644 index 686af4877..000000000 --- a/src/data/roadmaps/angular/content/112-creating-a-custom-x/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Creating a custom X - -Learn how to create custom pipes, libraries and directives in Angular. diff --git a/src/data/roadmaps/angular/content/113-angular-ssr/100-angular-universal.md b/src/data/roadmaps/angular/content/113-angular-ssr/100-angular-universal.md deleted file mode 100644 index ce1788159..000000000 --- a/src/data/roadmaps/angular/content/113-angular-ssr/100-angular-universal.md +++ /dev/null @@ -1,9 +0,0 @@ -# Angular universal - -Angular Universal also known as server-side rendering is tool which allows server to pre-render Angular application while user hits your website for first time. - -Visit the following resources to learn more: - -- [@official@Angular Website](https://angular.dev/guide/ssr) -- [@opensource@Github Repository](https://github.com/angular/universal) -- [@feed@Explore top posts about Angular](https://app.daily.dev/tags/angular?ref=roadmapsh) diff --git a/src/data/roadmaps/angular/content/114-angular-ssg/100-scully.md b/src/data/roadmaps/angular/content/114-angular-ssg/100-scully.md deleted file mode 100644 index 15cd8a6ee..000000000 --- a/src/data/roadmaps/angular/content/114-angular-ssg/100-scully.md +++ /dev/null @@ -1,8 +0,0 @@ -# Scully - -Scully is the best static site generator for Angular projects looking to embrace the Jamstack. It will use your application and will create a static index. html for each of your pages/routes. - -Visit the following resources to learn more: - -- [@official@Scully Website](https://scully.io/) -- [@opensource@Github Repository](https://github.com/scullyio/scully) diff --git a/src/data/roadmaps/angular/content/accessibility@VNG9DdXlS6R1OJ6Lrn4Lt.md b/src/data/roadmaps/angular/content/accessibility@VNG9DdXlS6R1OJ6Lrn4Lt.md new file mode 100644 index 000000000..55ffef6e3 --- /dev/null +++ b/src/data/roadmaps/angular/content/accessibility@VNG9DdXlS6R1OJ6Lrn4Lt.md @@ -0,0 +1 @@ +# Accessibility \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/analogjs@kauQofxCmpktXPcnzid17.md b/src/data/roadmaps/angular/content/analogjs@kauQofxCmpktXPcnzid17.md new file mode 100644 index 000000000..3034ed689 --- /dev/null +++ b/src/data/roadmaps/angular/content/analogjs@kauQofxCmpktXPcnzid17.md @@ -0,0 +1 @@ +# AnalogJS \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/angular-and-history@hpShWwL0M57ZAzqkB4I8t.md b/src/data/roadmaps/angular/content/angular-and-history@hpShWwL0M57ZAzqkB4I8t.md new file mode 100644 index 000000000..3a1e92428 --- /dev/null +++ b/src/data/roadmaps/angular/content/angular-and-history@hpShWwL0M57ZAzqkB4I8t.md @@ -0,0 +1 @@ +# Angular and History \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/angular-architecture@DE3cMpeRYuUPw2ADtfS-3.md b/src/data/roadmaps/angular/content/angular-architecture@DE3cMpeRYuUPw2ADtfS-3.md new file mode 100644 index 000000000..002dd5ed9 --- /dev/null +++ b/src/data/roadmaps/angular/content/angular-architecture@DE3cMpeRYuUPw2ADtfS-3.md @@ -0,0 +1 @@ +# Angular Architecture \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/103-angular-cli/index.md b/src/data/roadmaps/angular/content/angular-cli@4YSk6I63Ew--zoXC3xmrC.md similarity index 100% rename from src/data/roadmaps/angular/content/103-angular-cli/index.md rename to src/data/roadmaps/angular/content/angular-cli@4YSk6I63Ew--zoXC3xmrC.md diff --git a/src/data/roadmaps/angular/content/animation@rYJq59Q0YdfK6n3x740Em.md b/src/data/roadmaps/angular/content/animation@rYJq59Q0YdfK6n3x740Em.md new file mode 100644 index 000000000..583b7f7c0 --- /dev/null +++ b/src/data/roadmaps/angular/content/animation@rYJq59Q0YdfK6n3x740Em.md @@ -0,0 +1 @@ +# Animation \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/aot-compilation@MwtM1UAIfj4FJ-Y4CKDsP.md b/src/data/roadmaps/angular/content/aot-compilation@MwtM1UAIfj4FJ-Y4CKDsP.md new file mode 100644 index 000000000..82c08eade --- /dev/null +++ b/src/data/roadmaps/angular/content/aot-compilation@MwtM1UAIfj4FJ-Y4CKDsP.md @@ -0,0 +1 @@ +# AoT Compilation \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/atributes@0FvH7KPs9ag02QkD1HEJ-.md b/src/data/roadmaps/angular/content/atributes@0FvH7KPs9ag02QkD1HEJ-.md new file mode 100644 index 000000000..da60e0dce --- /dev/null +++ b/src/data/roadmaps/angular/content/atributes@0FvH7KPs9ag02QkD1HEJ-.md @@ -0,0 +1 @@ +# Atributes \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/attribute-directives@xvwby0FTdIolRrV2j88fY.md b/src/data/roadmaps/angular/content/attribute-directives@xvwby0FTdIolRrV2j88fY.md new file mode 100644 index 000000000..4cd91f888 --- /dev/null +++ b/src/data/roadmaps/angular/content/attribute-directives@xvwby0FTdIolRrV2j88fY.md @@ -0,0 +1 @@ +# Attribute Directives \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/attributes-binding@FgsSyM6To7irpbivtOLEE.md b/src/data/roadmaps/angular/content/attributes-binding@FgsSyM6To7irpbivtOLEE.md new file mode 100644 index 000000000..0c029e2d5 --- /dev/null +++ b/src/data/roadmaps/angular/content/attributes-binding@FgsSyM6To7irpbivtOLEE.md @@ -0,0 +1 @@ +# Attributes Binding \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/build-environments@Ax-s_xw3FO3Ocv-AnLbQD.md b/src/data/roadmaps/angular/content/build-environments@Ax-s_xw3FO3Ocv-AnLbQD.md new file mode 100644 index 000000000..1c3e193ba --- /dev/null +++ b/src/data/roadmaps/angular/content/build-environments@Ax-s_xw3FO3Ocv-AnLbQD.md @@ -0,0 +1 @@ +# Build Environments \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/case@cHC2MH50CbUSMRZV4QGJI.md b/src/data/roadmaps/angular/content/case@cHC2MH50CbUSMRZV4QGJI.md new file mode 100644 index 000000000..5a719d592 --- /dev/null +++ b/src/data/roadmaps/angular/content/case@cHC2MH50CbUSMRZV4QGJI.md @@ -0,0 +1 @@ +# @case \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/105-rendering-topics/102-change-detection.md b/src/data/roadmaps/angular/content/change-detection@_-mTs_FMeob-ZGK-bb3j-.md similarity index 100% rename from src/data/roadmaps/angular/content/105-rendering-topics/102-change-detection.md rename to src/data/roadmaps/angular/content/change-detection@_-mTs_FMeob-ZGK-bb3j-.md diff --git a/src/data/roadmaps/angular/content/changedetection@uYHy2yhtTm6fQkKpYx3lU.md b/src/data/roadmaps/angular/content/changedetection@uYHy2yhtTm6fQkKpYx3lU.md new file mode 100644 index 000000000..8f8f1666a --- /dev/null +++ b/src/data/roadmaps/angular/content/changedetection@uYHy2yhtTm6fQkKpYx3lU.md @@ -0,0 +1 @@ +# changeDetection \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/cli-builders@TeWEy9I-hU6SH02Sy2S2S.md b/src/data/roadmaps/angular/content/cli-builders@TeWEy9I-hU6SH02Sy2S2S.md new file mode 100644 index 000000000..abe74fab5 --- /dev/null +++ b/src/data/roadmaps/angular/content/cli-builders@TeWEy9I-hU6SH02Sy2S2S.md @@ -0,0 +1 @@ +# CLI Builders \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/code-coverage@bqA2bxPcZrqQ-6QE-YDK1.md b/src/data/roadmaps/angular/content/code-coverage@bqA2bxPcZrqQ-6QE-YDK1.md new file mode 100644 index 000000000..d392208a1 --- /dev/null +++ b/src/data/roadmaps/angular/content/code-coverage@bqA2bxPcZrqQ-6QE-YDK1.md @@ -0,0 +1 @@ +# Code Coverage \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/101-rxjs-basics/104-operators/103-combination.md b/src/data/roadmaps/angular/content/combination@IgUHqfVhiGpwxT9tY8O88.md similarity index 100% rename from src/data/roadmaps/angular/content/101-rxjs-basics/104-operators/103-combination.md rename to src/data/roadmaps/angular/content/combination@IgUHqfVhiGpwxT9tY8O88.md diff --git a/src/data/roadmaps/angular/content/common-pipes@i2taHzQ5KLHjkkpbH4Ytd.md b/src/data/roadmaps/angular/content/common-pipes@i2taHzQ5KLHjkkpbH4Ytd.md new file mode 100644 index 000000000..57e72e305 --- /dev/null +++ b/src/data/roadmaps/angular/content/common-pipes@i2taHzQ5KLHjkkpbH4Ytd.md @@ -0,0 +1 @@ +# Common Pipes \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/communication@19c7D-fWIJ3vYFT6h8ZfN.md b/src/data/roadmaps/angular/content/communication@19c7D-fWIJ3vYFT6h8ZfN.md new file mode 100644 index 000000000..7e37400e2 --- /dev/null +++ b/src/data/roadmaps/angular/content/communication@19c7D-fWIJ3vYFT6h8ZfN.md @@ -0,0 +1 @@ +# Communication \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/complex-sequences@Unjknmb4b2LY-nUVvvF7_.md b/src/data/roadmaps/angular/content/complex-sequences@Unjknmb4b2LY-nUVvvF7_.md new file mode 100644 index 000000000..a44781c50 --- /dev/null +++ b/src/data/roadmaps/angular/content/complex-sequences@Unjknmb4b2LY-nUVvvF7_.md @@ -0,0 +1 @@ +# Complex Sequences \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/component-anatomy@Mp056kNnwsRWeEXuhGPy-.md b/src/data/roadmaps/angular/content/component-anatomy@Mp056kNnwsRWeEXuhGPy-.md new file mode 100644 index 000000000..a4b4afe2c --- /dev/null +++ b/src/data/roadmaps/angular/content/component-anatomy@Mp056kNnwsRWeEXuhGPy-.md @@ -0,0 +1 @@ +# Component Anatomy \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/115-testing-angular-apps/102-testing-component-bindings.md b/src/data/roadmaps/angular/content/component-bindings@cXVy1lx2XqY_j8gxz-y60.md similarity index 100% rename from src/data/roadmaps/angular/content/115-testing-angular-apps/102-testing-component-bindings.md rename to src/data/roadmaps/angular/content/component-bindings@cXVy1lx2XqY_j8gxz-y60.md diff --git a/src/data/roadmaps/angular/content/109-lifecycle-hooks.md b/src/data/roadmaps/angular/content/component-lifecycle@nCpfj_35ZvW-NTygg06XZ.md similarity index 100% rename from src/data/roadmaps/angular/content/109-lifecycle-hooks.md rename to src/data/roadmaps/angular/content/component-lifecycle@nCpfj_35ZvW-NTygg06XZ.md diff --git a/src/data/roadmaps/angular/content/115-testing-angular-apps/104-testing-component-templates.md b/src/data/roadmaps/angular/content/component-templates@0dYWO_Zvh9J5_6cRjRjvI.md similarity index 100% rename from src/data/roadmaps/angular/content/115-testing-angular-apps/104-testing-component-templates.md rename to src/data/roadmaps/angular/content/component-templates@0dYWO_Zvh9J5_6cRjRjvI.md diff --git a/src/data/roadmaps/angular/content/102-angular-basics/101-angular-components.md b/src/data/roadmaps/angular/content/components@kGnKzCkQCNFEdgCBRtNuW.md similarity index 100% rename from src/data/roadmaps/angular/content/102-angular-basics/101-angular-components.md rename to src/data/roadmaps/angular/content/components@kGnKzCkQCNFEdgCBRtNuW.md diff --git a/src/data/roadmaps/angular/content/107-routing/100-configuration.md b/src/data/roadmaps/angular/content/configuration@dbAS-hN1hoCsNJhkxXcGq.md similarity index 100% rename from src/data/roadmaps/angular/content/107-routing/100-configuration.md rename to src/data/roadmaps/angular/content/configuration@dbAS-hN1hoCsNJhkxXcGq.md diff --git a/src/data/roadmaps/angular/content/containers@0s-QhN5aZh2F3tLJFKEyR.md b/src/data/roadmaps/angular/content/containers@0s-QhN5aZh2F3tLJFKEyR.md new file mode 100644 index 000000000..e9190fd9a --- /dev/null +++ b/src/data/roadmaps/angular/content/containers@0s-QhN5aZh2F3tLJFKEyR.md @@ -0,0 +1 @@ +# Containers \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/contentchild@oQl9etjoHiU2JgxieUOEH.md b/src/data/roadmaps/angular/content/contentchild@oQl9etjoHiU2JgxieUOEH.md new file mode 100644 index 000000000..3ee7292cb --- /dev/null +++ b/src/data/roadmaps/angular/content/contentchild@oQl9etjoHiU2JgxieUOEH.md @@ -0,0 +1 @@ +# ContentChild \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/control-flow@VzvB_bads057YtG4ST4a2.md b/src/data/roadmaps/angular/content/control-flow@VzvB_bads057YtG4ST4a2.md new file mode 100644 index 000000000..386281f41 --- /dev/null +++ b/src/data/roadmaps/angular/content/control-flow@VzvB_bads057YtG4ST4a2.md @@ -0,0 +1 @@ +# Control Flow \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/control-value-accessor@m5dgKgUR3ZqI9sBAzToev.md b/src/data/roadmaps/angular/content/control-value-accessor@m5dgKgUR3ZqI9sBAzToev.md new file mode 100644 index 000000000..18605af87 --- /dev/null +++ b/src/data/roadmaps/angular/content/control-value-accessor@m5dgKgUR3ZqI9sBAzToev.md @@ -0,0 +1 @@ +# Control Value Accessor \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/creating-components@ex8FOKrUlbu4MuEq2czyW.md b/src/data/roadmaps/angular/content/creating-components@ex8FOKrUlbu4MuEq2czyW.md new file mode 100644 index 000000000..245b00292 --- /dev/null +++ b/src/data/roadmaps/angular/content/creating-components@ex8FOKrUlbu4MuEq2czyW.md @@ -0,0 +1 @@ +# Creating Components \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/creating-libraries@A1mYMg7cbcj6p_VkDf-Tz.md b/src/data/roadmaps/angular/content/creating-libraries@A1mYMg7cbcj6p_VkDf-Tz.md new file mode 100644 index 000000000..a4c6d8e3c --- /dev/null +++ b/src/data/roadmaps/angular/content/creating-libraries@A1mYMg7cbcj6p_VkDf-Tz.md @@ -0,0 +1 @@ +# Creating Libraries \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/creating-modules@9YhTXybJw2gszlqFeBtW3.md b/src/data/roadmaps/angular/content/creating-modules@9YhTXybJw2gszlqFeBtW3.md new file mode 100644 index 000000000..454e81047 --- /dev/null +++ b/src/data/roadmaps/angular/content/creating-modules@9YhTXybJw2gszlqFeBtW3.md @@ -0,0 +1 @@ +# Creating Modules \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/cross-site-request-forgery@Z1DZBbFI4oU6-KQg3wqMm.md b/src/data/roadmaps/angular/content/cross-site-request-forgery@Z1DZBbFI4oU6-KQg3wqMm.md new file mode 100644 index 000000000..2c8a31f90 --- /dev/null +++ b/src/data/roadmaps/angular/content/cross-site-request-forgery@Z1DZBbFI4oU6-KQg3wqMm.md @@ -0,0 +1 @@ +# Cross-site Request Forgery \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/cross-site-script-inclusion@zd7YJGlcMFNFbsKUiW_XC.md b/src/data/roadmaps/angular/content/cross-site-script-inclusion@zd7YJGlcMFNFbsKUiW_XC.md new file mode 100644 index 000000000..535baaa7d --- /dev/null +++ b/src/data/roadmaps/angular/content/cross-site-script-inclusion@zd7YJGlcMFNFbsKUiW_XC.md @@ -0,0 +1 @@ +# Cross-site Script Inclusion \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/cross-site-scripting@umUX4Hxk7srHlFR_Un-u7.md b/src/data/roadmaps/angular/content/cross-site-scripting@umUX4Hxk7srHlFR_Un-u7.md new file mode 100644 index 000000000..82042520e --- /dev/null +++ b/src/data/roadmaps/angular/content/cross-site-scripting@umUX4Hxk7srHlFR_Un-u7.md @@ -0,0 +1 @@ +# Cross-site Scripting \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/112-creating-a-custom-x/100-directive.md b/src/data/roadmaps/angular/content/custom-directives@7GUvTMVzfdVEDBOz-tHUT.md similarity index 100% rename from src/data/roadmaps/angular/content/112-creating-a-custom-x/100-directive.md rename to src/data/roadmaps/angular/content/custom-directives@7GUvTMVzfdVEDBOz-tHUT.md diff --git a/src/data/roadmaps/angular/content/112-creating-a-custom-x/101-pipe.md b/src/data/roadmaps/angular/content/custom-pipes@BOYXGfULJRiP-XOo_lNX3.md similarity index 100% rename from src/data/roadmaps/angular/content/112-creating-a-custom-x/101-pipe.md rename to src/data/roadmaps/angular/content/custom-pipes@BOYXGfULJRiP-XOo_lNX3.md diff --git a/src/data/roadmaps/angular/content/custom-validators@kxRtLsB3y_th8j-HjmJgK.md b/src/data/roadmaps/angular/content/custom-validators@kxRtLsB3y_th8j-HjmJgK.md new file mode 100644 index 000000000..949355038 --- /dev/null +++ b/src/data/roadmaps/angular/content/custom-validators@kxRtLsB3y_th8j-HjmJgK.md @@ -0,0 +1 @@ +# Custom Validators \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/data-binding@5vZkiH7HDwONIABLfNJ06.md b/src/data/roadmaps/angular/content/data-binding@5vZkiH7HDwONIABLfNJ06.md new file mode 100644 index 000000000..20dd60eef --- /dev/null +++ b/src/data/roadmaps/angular/content/data-binding@5vZkiH7HDwONIABLfNJ06.md @@ -0,0 +1 @@ +# Data Binding \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/debugging-tests@f5v74Uw54LsB4FgdN6eCd.md b/src/data/roadmaps/angular/content/debugging-tests@f5v74Uw54LsB4FgdN6eCd.md new file mode 100644 index 000000000..512a64618 --- /dev/null +++ b/src/data/roadmaps/angular/content/debugging-tests@f5v74Uw54LsB4FgdN6eCd.md @@ -0,0 +1 @@ +# Debugging Tests \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/default@h4MMn0_qUN3YXEdMUJOyd.md b/src/data/roadmaps/angular/content/default@h4MMn0_qUN3YXEdMUJOyd.md new file mode 100644 index 000000000..0a63ba72a --- /dev/null +++ b/src/data/roadmaps/angular/content/default@h4MMn0_qUN3YXEdMUJOyd.md @@ -0,0 +1 @@ +# @default \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/defer@ONy-0olujU_FGZM7Wvfr2.md b/src/data/roadmaps/angular/content/defer@ONy-0olujU_FGZM7Wvfr2.md new file mode 100644 index 000000000..b537a4bcc --- /dev/null +++ b/src/data/roadmaps/angular/content/defer@ONy-0olujU_FGZM7Wvfr2.md @@ -0,0 +1 @@ +# @defer \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/deferrable-views@CYjsXIOWtP5DJmYS-qR-s.md b/src/data/roadmaps/angular/content/deferrable-views@CYjsXIOWtP5DJmYS-qR-s.md new file mode 100644 index 000000000..73c327ad9 --- /dev/null +++ b/src/data/roadmaps/angular/content/deferrable-views@CYjsXIOWtP5DJmYS-qR-s.md @@ -0,0 +1 @@ +# Deferrable Views \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/dependencies@5b590c7s-2XJ0rgdCYxLa.md b/src/data/roadmaps/angular/content/dependencies@5b590c7s-2XJ0rgdCYxLa.md new file mode 100644 index 000000000..e482fab7c --- /dev/null +++ b/src/data/roadmaps/angular/content/dependencies@5b590c7s-2XJ0rgdCYxLa.md @@ -0,0 +1 @@ +# Dependencies \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/102-angular-basics/104-dependency-injection.md b/src/data/roadmaps/angular/content/dependency-injection@8u9uHCRt9RU57erBy79PP.md similarity index 100% rename from src/data/roadmaps/angular/content/102-angular-basics/104-dependency-injection.md rename to src/data/roadmaps/angular/content/dependency-injection@8u9uHCRt9RU57erBy79PP.md diff --git a/src/data/roadmaps/angular/content/deployment@1fVi9AK6aLjt5QgAFbnGX.md b/src/data/roadmaps/angular/content/deployment@1fVi9AK6aLjt5QgAFbnGX.md new file mode 100644 index 000000000..7a9e3e037 --- /dev/null +++ b/src/data/roadmaps/angular/content/deployment@1fVi9AK6aLjt5QgAFbnGX.md @@ -0,0 +1 @@ +# Deployment \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/developer-tools@EbJib-XfZFF9bpCtL3aBs.md b/src/data/roadmaps/angular/content/developer-tools@EbJib-XfZFF9bpCtL3aBs.md new file mode 100644 index 000000000..e9b582dff --- /dev/null +++ b/src/data/roadmaps/angular/content/developer-tools@EbJib-XfZFF9bpCtL3aBs.md @@ -0,0 +1 @@ +# Developer Tools \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/devtools@T3MmS3bvMMgCUbOk3ktU7.md b/src/data/roadmaps/angular/content/devtools@T3MmS3bvMMgCUbOk3ktU7.md new file mode 100644 index 000000000..62a518ab5 --- /dev/null +++ b/src/data/roadmaps/angular/content/devtools@T3MmS3bvMMgCUbOk3ktU7.md @@ -0,0 +1 @@ +# DevTools \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/105-rendering-topics/100-builtin-directives.md b/src/data/roadmaps/angular/content/directives@kGzlumFdZFxTRZ3HnCGFO.md similarity index 100% rename from src/data/roadmaps/angular/content/105-rendering-topics/100-builtin-directives.md rename to src/data/roadmaps/angular/content/directives@kGzlumFdZFxTRZ3HnCGFO.md diff --git a/src/data/roadmaps/angular/content/dynamic-components@tC5ETtOuuUcybj1jI4CuG.md b/src/data/roadmaps/angular/content/dynamic-components@tC5ETtOuuUcybj1jI4CuG.md new file mode 100644 index 000000000..f80074673 --- /dev/null +++ b/src/data/roadmaps/angular/content/dynamic-components@tC5ETtOuuUcybj1jI4CuG.md @@ -0,0 +1 @@ +# Dynamic Components \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/dynamic-forms@CpufN6DAOj5UNab9vnH0k.md b/src/data/roadmaps/angular/content/dynamic-forms@CpufN6DAOj5UNab9vnH0k.md new file mode 100644 index 000000000..e070d072f --- /dev/null +++ b/src/data/roadmaps/angular/content/dynamic-forms@CpufN6DAOj5UNab9vnH0k.md @@ -0,0 +1 @@ +# Dynamic Forms \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/elf@rgPUcSKxG9DvXicLfC2Ay.md b/src/data/roadmaps/angular/content/elf@rgPUcSKxG9DvXicLfC2Ay.md new file mode 100644 index 000000000..8482e5c2e --- /dev/null +++ b/src/data/roadmaps/angular/content/elf@rgPUcSKxG9DvXicLfC2Ay.md @@ -0,0 +1 @@ +# Elf \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/else-if@mRB-0CRdGwvxPqZbz08yj.md b/src/data/roadmaps/angular/content/else-if@mRB-0CRdGwvxPqZbz08yj.md new file mode 100644 index 000000000..97e7c209e --- /dev/null +++ b/src/data/roadmaps/angular/content/else-if@mRB-0CRdGwvxPqZbz08yj.md @@ -0,0 +1 @@ +# @else if \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/else-if@ys5untkSppGMFK-VsfuRt.md b/src/data/roadmaps/angular/content/else-if@ys5untkSppGMFK-VsfuRt.md new file mode 100644 index 000000000..97e7c209e --- /dev/null +++ b/src/data/roadmaps/angular/content/else-if@ys5untkSppGMFK-VsfuRt.md @@ -0,0 +1 @@ +# @else if \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/else@ORdPDad4HWJAfcZuS-7yM.md b/src/data/roadmaps/angular/content/else@ORdPDad4HWJAfcZuS-7yM.md new file mode 100644 index 000000000..538228489 --- /dev/null +++ b/src/data/roadmaps/angular/content/else@ORdPDad4HWJAfcZuS-7yM.md @@ -0,0 +1 @@ +# @else \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/encapsulation@ctigvSYeFa77y3v7m11gk.md b/src/data/roadmaps/angular/content/encapsulation@ctigvSYeFa77y3v7m11gk.md new file mode 100644 index 000000000..d6957a2a1 --- /dev/null +++ b/src/data/roadmaps/angular/content/encapsulation@ctigvSYeFa77y3v7m11gk.md @@ -0,0 +1 @@ +# Encapsulation \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/end-to-end-testing@yhNGhduk__ow8VTLc6inZ.md b/src/data/roadmaps/angular/content/end-to-end-testing@yhNGhduk__ow8VTLc6inZ.md new file mode 100644 index 000000000..9e2bcd9b6 --- /dev/null +++ b/src/data/roadmaps/angular/content/end-to-end-testing@yhNGhduk__ow8VTLc6inZ.md @@ -0,0 +1 @@ +# End-to-End Testing \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/enforce-trusted-types@5h7U0spwEUhB-hbjSlaeB.md b/src/data/roadmaps/angular/content/enforce-trusted-types@5h7U0spwEUhB-hbjSlaeB.md new file mode 100644 index 000000000..abba00eca --- /dev/null +++ b/src/data/roadmaps/angular/content/enforce-trusted-types@5h7U0spwEUhB-hbjSlaeB.md @@ -0,0 +1 @@ +# Enforce Trusted Types \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/events@bKnpirSvex4oE4lAjiSSV.md b/src/data/roadmaps/angular/content/events@bKnpirSvex4oE4lAjiSSV.md new file mode 100644 index 000000000..cbf945847 --- /dev/null +++ b/src/data/roadmaps/angular/content/events@bKnpirSvex4oE4lAjiSSV.md @@ -0,0 +1 @@ +# Events \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/feature-modules@w_BazXvINFyxDCHmlznfy.md b/src/data/roadmaps/angular/content/feature-modules@w_BazXvINFyxDCHmlznfy.md new file mode 100644 index 000000000..b84fdfb52 --- /dev/null +++ b/src/data/roadmaps/angular/content/feature-modules@w_BazXvINFyxDCHmlznfy.md @@ -0,0 +1 @@ +# Feature Modules \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/101-rxjs-basics/104-operators/100-filtering.md b/src/data/roadmaps/angular/content/filtering@nxUbl0eu3LsSL-Z8X6nP5.md similarity index 100% rename from src/data/roadmaps/angular/content/101-rxjs-basics/104-operators/100-filtering.md rename to src/data/roadmaps/angular/content/filtering@nxUbl0eu3LsSL-Z8X6nP5.md diff --git a/src/data/roadmaps/angular/content/for@2kYS9w1UzQFZ1zhf01m9L.md b/src/data/roadmaps/angular/content/for@2kYS9w1UzQFZ1zhf01m9L.md new file mode 100644 index 000000000..b1ac1a059 --- /dev/null +++ b/src/data/roadmaps/angular/content/for@2kYS9w1UzQFZ1zhf01m9L.md @@ -0,0 +1 @@ +# @for \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/106-forms/index.md b/src/data/roadmaps/angular/content/forms@Q36LQds8k_cSjijvXyWOM.md similarity index 100% rename from src/data/roadmaps/angular/content/106-forms/index.md rename to src/data/roadmaps/angular/content/forms@Q36LQds8k_cSjijvXyWOM.md diff --git a/src/data/roadmaps/angular/content/107-routing/104-guards.md b/src/data/roadmaps/angular/content/guards@PmC4zeaLpa5LoL4FhYXcG.md similarity index 100% rename from src/data/roadmaps/angular/content/107-routing/104-guards.md rename to src/data/roadmaps/angular/content/guards@PmC4zeaLpa5LoL4FhYXcG.md diff --git a/src/data/roadmaps/angular/content/http-client@8UY0HAvjY7bdbFpt-MM1u.md b/src/data/roadmaps/angular/content/http-client@8UY0HAvjY7bdbFpt-MM1u.md new file mode 100644 index 000000000..1f5ff9eff --- /dev/null +++ b/src/data/roadmaps/angular/content/http-client@8UY0HAvjY7bdbFpt-MM1u.md @@ -0,0 +1 @@ +# HTTP Client \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/http-vulnerabilities@xH3RHPhsaqD9zIMms5OmX.md b/src/data/roadmaps/angular/content/http-vulnerabilities@xH3RHPhsaqD9zIMms5OmX.md new file mode 100644 index 000000000..bf0271433 --- /dev/null +++ b/src/data/roadmaps/angular/content/http-vulnerabilities@xH3RHPhsaqD9zIMms5OmX.md @@ -0,0 +1 @@ +# HTTP Vulnerabilities \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/httpclient-csrf@m2aw8vb4rz4IjshpoMyNx.md b/src/data/roadmaps/angular/content/httpclient-csrf@m2aw8vb4rz4IjshpoMyNx.md new file mode 100644 index 000000000..8a1840657 --- /dev/null +++ b/src/data/roadmaps/angular/content/httpclient-csrf@m2aw8vb4rz4IjshpoMyNx.md @@ -0,0 +1 @@ +# HttpClient CSRF \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/hydration@NY_MfBNgNmloiRGcIvfJ1.md b/src/data/roadmaps/angular/content/hydration@NY_MfBNgNmloiRGcIvfJ1.md new file mode 100644 index 000000000..d4ca8f5f6 --- /dev/null +++ b/src/data/roadmaps/angular/content/hydration@NY_MfBNgNmloiRGcIvfJ1.md @@ -0,0 +1 @@ +# Hydration \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/if@U1Zy2T-2ki9pDkXn9hn-I.md b/src/data/roadmaps/angular/content/if@U1Zy2T-2ki9pDkXn9hn-I.md new file mode 100644 index 000000000..20b4c0b4d --- /dev/null +++ b/src/data/roadmaps/angular/content/if@U1Zy2T-2ki9pDkXn9hn-I.md @@ -0,0 +1 @@ +# @if \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/image-optimization@1WIKjn3nxYDMIhBL17aYQ.md b/src/data/roadmaps/angular/content/image-optimization@1WIKjn3nxYDMIhBL17aYQ.md new file mode 100644 index 000000000..cca9093d7 --- /dev/null +++ b/src/data/roadmaps/angular/content/image-optimization@1WIKjn3nxYDMIhBL17aYQ.md @@ -0,0 +1 @@ +# Image Optimization \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/imports@ghbrJhuGvscnNGCtVLh5_.md b/src/data/roadmaps/angular/content/imports@ghbrJhuGvscnNGCtVLh5_.md new file mode 100644 index 000000000..3c412f55f --- /dev/null +++ b/src/data/roadmaps/angular/content/imports@ghbrJhuGvscnNGCtVLh5_.md @@ -0,0 +1 @@ +# Imports \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/104-templates/105-input-output.md b/src/data/roadmaps/angular/content/input--output@VsU6713jeIjAOEZnF6gWx.md similarity index 100% rename from src/data/roadmaps/angular/content/104-templates/105-input-output.md rename to src/data/roadmaps/angular/content/input--output@VsU6713jeIjAOEZnF6gWx.md diff --git a/src/data/roadmaps/angular/content/inputs-as-signals@LcJyAfv9hjyUNXUVyPRP4.md b/src/data/roadmaps/angular/content/inputs-as-signals@LcJyAfv9hjyUNXUVyPRP4.md new file mode 100644 index 000000000..8bea56d64 --- /dev/null +++ b/src/data/roadmaps/angular/content/inputs-as-signals@LcJyAfv9hjyUNXUVyPRP4.md @@ -0,0 +1 @@ +# Inputs as Signals \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/internationalization@Xxyx3uzy5TpNhgR1IysMN.md b/src/data/roadmaps/angular/content/internationalization@Xxyx3uzy5TpNhgR1IysMN.md new file mode 100644 index 000000000..49a10ae67 --- /dev/null +++ b/src/data/roadmaps/angular/content/internationalization@Xxyx3uzy5TpNhgR1IysMN.md @@ -0,0 +1 @@ +# Internationalization \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/104-templates/100-interpolation.md b/src/data/roadmaps/angular/content/interpoloation@XHpfHRIlFh19FJIE07u7i.md similarity index 100% rename from src/data/roadmaps/angular/content/104-templates/100-interpolation.md rename to src/data/roadmaps/angular/content/interpoloation@XHpfHRIlFh19FJIE07u7i.md diff --git a/src/data/roadmaps/angular/content/introduction-to-angular@KDd40JOAvZ8O1mfhTYB3K.md b/src/data/roadmaps/angular/content/introduction-to-angular@KDd40JOAvZ8O1mfhTYB3K.md new file mode 100644 index 000000000..dc45d81a8 --- /dev/null +++ b/src/data/roadmaps/angular/content/introduction-to-angular@KDd40JOAvZ8O1mfhTYB3K.md @@ -0,0 +1 @@ +# Introduction to Angular \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/language-service@ql7SyxrRmjpiXJ9hQeWPq.md b/src/data/roadmaps/angular/content/language-service@ql7SyxrRmjpiXJ9hQeWPq.md new file mode 100644 index 000000000..4122122b8 --- /dev/null +++ b/src/data/roadmaps/angular/content/language-service@ql7SyxrRmjpiXJ9hQeWPq.md @@ -0,0 +1 @@ +# Language Service \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/lazy-loading-modules@bLERvEERmNI5AgxtEYokZ.md b/src/data/roadmaps/angular/content/lazy-loading-modules@bLERvEERmNI5AgxtEYokZ.md new file mode 100644 index 000000000..49cbd09a5 --- /dev/null +++ b/src/data/roadmaps/angular/content/lazy-loading-modules@bLERvEERmNI5AgxtEYokZ.md @@ -0,0 +1 @@ +# Lazy Loading Modules \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/107-routing/105-lazy-loading.md b/src/data/roadmaps/angular/content/lazy-loading@ewbDdPYv2SJl_jW3RVHQs.md similarity index 100% rename from src/data/roadmaps/angular/content/107-routing/105-lazy-loading.md rename to src/data/roadmaps/angular/content/lazy-loading@ewbDdPYv2SJl_jW3RVHQs.md diff --git a/src/data/roadmaps/angular/content/let@AwOM0ucg6W7TohdUd7KWT.md b/src/data/roadmaps/angular/content/let@AwOM0ucg6W7TohdUd7KWT.md new file mode 100644 index 000000000..f85485fa7 --- /dev/null +++ b/src/data/roadmaps/angular/content/let@AwOM0ucg6W7TohdUd7KWT.md @@ -0,0 +1 @@ +# @let \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/112-creating-a-custom-x/102-library.md b/src/data/roadmaps/angular/content/libraries@cl89U8atD6gw5rMGUm4Ix.md similarity index 100% rename from src/data/roadmaps/angular/content/112-creating-a-custom-x/102-library.md rename to src/data/roadmaps/angular/content/libraries@cl89U8atD6gw5rMGUm4Ix.md diff --git a/src/data/roadmaps/angular/content/link-identification@5-RCB8AiDbkdIFYNXKWge.md b/src/data/roadmaps/angular/content/link-identification@5-RCB8AiDbkdIFYNXKWge.md new file mode 100644 index 000000000..5d10061fb --- /dev/null +++ b/src/data/roadmaps/angular/content/link-identification@5-RCB8AiDbkdIFYNXKWge.md @@ -0,0 +1 @@ +# Link Identification \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/local-setup@FVH0lnbIZ2m5EfF2EJ2DW.md b/src/data/roadmaps/angular/content/local-setup@FVH0lnbIZ2m5EfF2EJ2DW.md new file mode 100644 index 000000000..8f8896414 --- /dev/null +++ b/src/data/roadmaps/angular/content/local-setup@FVH0lnbIZ2m5EfF2EJ2DW.md @@ -0,0 +1 @@ +# Local Setup \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/locales-by-id@dVKl3Z2Rnf6IB064v19Mi.md b/src/data/roadmaps/angular/content/locales-by-id@dVKl3Z2Rnf6IB064v19Mi.md new file mode 100644 index 000000000..96537634b --- /dev/null +++ b/src/data/roadmaps/angular/content/locales-by-id@dVKl3Z2Rnf6IB064v19Mi.md @@ -0,0 +1 @@ +# Locales by ID \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/localize-package@W8OwpEw00xn0GxidlJjdc.md b/src/data/roadmaps/angular/content/localize-package@W8OwpEw00xn0GxidlJjdc.md new file mode 100644 index 000000000..5b4e59da2 --- /dev/null +++ b/src/data/roadmaps/angular/content/localize-package@W8OwpEw00xn0GxidlJjdc.md @@ -0,0 +1 @@ +# Localize Package \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/making-requests@HjGAv3aV-p4ijYJ8XYIw3.md b/src/data/roadmaps/angular/content/making-requests@HjGAv3aV-p4ijYJ8XYIw3.md new file mode 100644 index 000000000..5bebf1e02 --- /dev/null +++ b/src/data/roadmaps/angular/content/making-requests@HjGAv3aV-p4ijYJ8XYIw3.md @@ -0,0 +1 @@ +# Making Requests \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/metadata@Szgr8dnZNi-z5i6raIJzW.md b/src/data/roadmaps/angular/content/metadata@Szgr8dnZNi-z5i6raIJzW.md new file mode 100644 index 000000000..676ef9b01 --- /dev/null +++ b/src/data/roadmaps/angular/content/metadata@Szgr8dnZNi-z5i6raIJzW.md @@ -0,0 +1 @@ +# Metadata \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/model-inputs@IeU6ClS_yp6BYKdkQOJVf.md b/src/data/roadmaps/angular/content/model-inputs@IeU6ClS_yp6BYKdkQOJVf.md new file mode 100644 index 000000000..2d81ead94 --- /dev/null +++ b/src/data/roadmaps/angular/content/model-inputs@IeU6ClS_yp6BYKdkQOJVf.md @@ -0,0 +1 @@ +# Model Inputs \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/module-architecture@BCq5sgWQLiw0f7u7ZSAd2.md b/src/data/roadmaps/angular/content/module-architecture@BCq5sgWQLiw0f7u7ZSAd2.md new file mode 100644 index 000000000..41a45a28d --- /dev/null +++ b/src/data/roadmaps/angular/content/module-architecture@BCq5sgWQLiw0f7u7ZSAd2.md @@ -0,0 +1 @@ +# Module Architecture \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/102-angular-basics/103-angular-modules.md b/src/data/roadmaps/angular/content/modules@b_kdNS9PDupcUftslkf9i.md similarity index 100% rename from src/data/roadmaps/angular/content/102-angular-basics/103-angular-modules.md rename to src/data/roadmaps/angular/content/modules@b_kdNS9PDupcUftslkf9i.md diff --git a/src/data/roadmaps/angular/content/multiple-locales@9ISvaaJ815_cr_KW9vQhT.md b/src/data/roadmaps/angular/content/multiple-locales@9ISvaaJ815_cr_KW9vQhT.md new file mode 100644 index 000000000..d14748e23 --- /dev/null +++ b/src/data/roadmaps/angular/content/multiple-locales@9ISvaaJ815_cr_KW9vQhT.md @@ -0,0 +1 @@ +# Multiple Locales \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/110-state-management/101-ngrx.md b/src/data/roadmaps/angular/content/ngrx@ir94IdkF1tVAA8ZTD9r0N.md similarity index 100% rename from src/data/roadmaps/angular/content/110-state-management/101-ngrx.md rename to src/data/roadmaps/angular/content/ngrx@ir94IdkF1tVAA8ZTD9r0N.md diff --git a/src/data/roadmaps/angular/content/110-state-management/100-ngxs.md b/src/data/roadmaps/angular/content/ngxs@N9ZCPgFnFIUv4jMv1w5qK.md similarity index 100% rename from src/data/roadmaps/angular/content/110-state-management/100-ngxs.md rename to src/data/roadmaps/angular/content/ngxs@N9ZCPgFnFIUv4jMv1w5qK.md diff --git a/src/data/roadmaps/angular/content/101-rxjs-basics/101-observable-lifecycle.md b/src/data/roadmaps/angular/content/observable-lifecycle@b06Y5YrqBbHhWkK6Ws_1c.md similarity index 100% rename from src/data/roadmaps/angular/content/101-rxjs-basics/101-observable-lifecycle.md rename to src/data/roadmaps/angular/content/observable-lifecycle@b06Y5YrqBbHhWkK6Ws_1c.md diff --git a/src/data/roadmaps/angular/content/101-rxjs-basics/100-observable-pattern.md b/src/data/roadmaps/angular/content/observable-pattern@krXA6ua7E3m4IIpFkgQZe.md similarity index 100% rename from src/data/roadmaps/angular/content/101-rxjs-basics/100-observable-pattern.md rename to src/data/roadmaps/angular/content/observable-pattern@krXA6ua7E3m4IIpFkgQZe.md diff --git a/src/data/roadmaps/angular/content/101-rxjs-basics/104-operators/index.md b/src/data/roadmaps/angular/content/operators@ihsjIcF0tkhjs56458teE.md similarity index 100% rename from src/data/roadmaps/angular/content/101-rxjs-basics/104-operators/index.md rename to src/data/roadmaps/angular/content/operators@ihsjIcF0tkhjs56458teE.md diff --git a/src/data/roadmaps/angular/content/parent-child-interaction@TDyFjKrIZJnCjEZsojPNQ.md b/src/data/roadmaps/angular/content/parent-child-interaction@TDyFjKrIZJnCjEZsojPNQ.md new file mode 100644 index 000000000..c271a8c88 --- /dev/null +++ b/src/data/roadmaps/angular/content/parent-child-interaction@TDyFjKrIZJnCjEZsojPNQ.md @@ -0,0 +1 @@ +# Parent-Child Interaction \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/performance@STEHxJpwBZxFdQl0zUKxo.md b/src/data/roadmaps/angular/content/performance@STEHxJpwBZxFdQl0zUKxo.md new file mode 100644 index 000000000..55cb80a3a --- /dev/null +++ b/src/data/roadmaps/angular/content/performance@STEHxJpwBZxFdQl0zUKxo.md @@ -0,0 +1 @@ +# Performance \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/pipes-precedence@nZxZnzbQg9dz-SI65UHq9.md b/src/data/roadmaps/angular/content/pipes-precedence@nZxZnzbQg9dz-SI65UHq9.md new file mode 100644 index 000000000..63f9a2f74 --- /dev/null +++ b/src/data/roadmaps/angular/content/pipes-precedence@nZxZnzbQg9dz-SI65UHq9.md @@ -0,0 +1 @@ +# Pipes Precedence \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/105-rendering-topics/101-builtin-pipes.md b/src/data/roadmaps/angular/content/pipes@j99WQxuTzGeBBVoReDp_y.md similarity index 100% rename from src/data/roadmaps/angular/content/105-rendering-topics/101-builtin-pipes.md rename to src/data/roadmaps/angular/content/pipes@j99WQxuTzGeBBVoReDp_y.md diff --git a/src/data/roadmaps/angular/content/104-templates/101-property-binding.md b/src/data/roadmaps/angular/content/properties-binding@TJOZfHtsLfwA0CZ2bd1b2.md similarity index 100% rename from src/data/roadmaps/angular/content/104-templates/101-property-binding.md rename to src/data/roadmaps/angular/content/properties-binding@TJOZfHtsLfwA0CZ2bd1b2.md diff --git a/src/data/roadmaps/angular/content/provider@dOMvz__EQjO-3p-Nzm-7P.md b/src/data/roadmaps/angular/content/provider@dOMvz__EQjO-3p-Nzm-7P.md new file mode 100644 index 000000000..a3253160e --- /dev/null +++ b/src/data/roadmaps/angular/content/provider@dOMvz__EQjO-3p-Nzm-7P.md @@ -0,0 +1 @@ +# Provider \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/queries-as-signals@9HS9C3yq9EUcUy0ZUZk_H.md b/src/data/roadmaps/angular/content/queries-as-signals@9HS9C3yq9EUcUy0ZUZk_H.md new file mode 100644 index 000000000..3bb7280bd --- /dev/null +++ b/src/data/roadmaps/angular/content/queries-as-signals@9HS9C3yq9EUcUy0ZUZk_H.md @@ -0,0 +1 @@ +# Queries as Signals \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/101-rxjs-basics/104-operators/101-rate-limiting.md b/src/data/roadmaps/angular/content/rate-limiting@bJbbayFQ9WSJT9-qy0H5l.md similarity index 100% rename from src/data/roadmaps/angular/content/101-rxjs-basics/104-operators/101-rate-limiting.md rename to src/data/roadmaps/angular/content/rate-limiting@bJbbayFQ9WSJT9-qy0H5l.md diff --git a/src/data/roadmaps/angular/content/106-forms/100-reactive-forms.md b/src/data/roadmaps/angular/content/reactive-forms@1d3Y4HVnqom8UOok-7EEf.md similarity index 100% rename from src/data/roadmaps/angular/content/106-forms/100-reactive-forms.md rename to src/data/roadmaps/angular/content/reactive-forms@1d3Y4HVnqom8UOok-7EEf.md diff --git a/src/data/roadmaps/angular/content/reusable-animations@M1CU2Yq6dLp4yOuGV0fhF.md b/src/data/roadmaps/angular/content/reusable-animations@M1CU2Yq6dLp4yOuGV0fhF.md new file mode 100644 index 000000000..3822be227 --- /dev/null +++ b/src/data/roadmaps/angular/content/reusable-animations@M1CU2Yq6dLp4yOuGV0fhF.md @@ -0,0 +1 @@ +# Reusable Animations \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/route-transitions@x91jWP81oCTeVEwzX8FbK.md b/src/data/roadmaps/angular/content/route-transitions@x91jWP81oCTeVEwzX8FbK.md new file mode 100644 index 000000000..1d3d9864e --- /dev/null +++ b/src/data/roadmaps/angular/content/route-transitions@x91jWP81oCTeVEwzX8FbK.md @@ -0,0 +1 @@ +# Route Transitions \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/107-routing/103-router-events.md b/src/data/roadmaps/angular/content/router-events@YF_sG292HqawIX0siWhrv.md similarity index 100% rename from src/data/roadmaps/angular/content/107-routing/103-router-events.md rename to src/data/roadmaps/angular/content/router-events@YF_sG292HqawIX0siWhrv.md diff --git a/src/data/roadmaps/angular/content/107-routing/102-router-links.md b/src/data/roadmaps/angular/content/router-links@8lFyuSx4MUcYRY2L8bZrq.md similarity index 100% rename from src/data/roadmaps/angular/content/107-routing/102-router-links.md rename to src/data/roadmaps/angular/content/router-links@8lFyuSx4MUcYRY2L8bZrq.md diff --git a/src/data/roadmaps/angular/content/107-routing/101-router-outlets.md b/src/data/roadmaps/angular/content/router-outlets@1ZwdEL0Gx30Vv_Av3ZTGG.md similarity index 100% rename from src/data/roadmaps/angular/content/107-routing/101-router-outlets.md rename to src/data/roadmaps/angular/content/router-outlets@1ZwdEL0Gx30Vv_Av3ZTGG.md diff --git a/src/data/roadmaps/angular/content/routing@8i_JD1P4gIhY1rdldwLC2.md b/src/data/roadmaps/angular/content/routing@8i_JD1P4gIhY1rdldwLC2.md new file mode 100644 index 000000000..5904c1e21 --- /dev/null +++ b/src/data/roadmaps/angular/content/routing@8i_JD1P4gIhY1rdldwLC2.md @@ -0,0 +1 @@ +# Routing \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/102-angular-basics/106-routing.md b/src/data/roadmaps/angular/content/routing@a74v78SvGtWduZpXs7wSq.md similarity index 100% rename from src/data/roadmaps/angular/content/102-angular-basics/106-routing.md rename to src/data/roadmaps/angular/content/routing@a74v78SvGtWduZpXs7wSq.md diff --git a/src/data/roadmaps/angular/content/101-rxjs-basics/index.md b/src/data/roadmaps/angular/content/rxjs-basics@lfp7PIjwITU5gBITQdirD.md similarity index 100% rename from src/data/roadmaps/angular/content/101-rxjs-basics/index.md rename to src/data/roadmaps/angular/content/rxjs-basics@lfp7PIjwITU5gBITQdirD.md diff --git a/src/data/roadmaps/angular/content/rxjs-interop@KAdtebWvgvMifIwd52yc4.md b/src/data/roadmaps/angular/content/rxjs-interop@KAdtebWvgvMifIwd52yc4.md new file mode 100644 index 000000000..11f80f74f --- /dev/null +++ b/src/data/roadmaps/angular/content/rxjs-interop@KAdtebWvgvMifIwd52yc4.md @@ -0,0 +1 @@ +# RxJS Interop \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/101-rxjs-basics/103-rxjs-vs-promises.md b/src/data/roadmaps/angular/content/rxjs-vs-promises@e1ZmmxPZuogCNgtbPPWmd.md similarity index 100% rename from src/data/roadmaps/angular/content/101-rxjs-basics/103-rxjs-vs-promises.md rename to src/data/roadmaps/angular/content/rxjs-vs-promises@e1ZmmxPZuogCNgtbPPWmd.md diff --git a/src/data/roadmaps/angular/content/sanitization@cgI9oeUHufA-ky_W1zENe.md b/src/data/roadmaps/angular/content/sanitization@cgI9oeUHufA-ky_W1zENe.md new file mode 100644 index 000000000..f99e8b75f --- /dev/null +++ b/src/data/roadmaps/angular/content/sanitization@cgI9oeUHufA-ky_W1zENe.md @@ -0,0 +1 @@ +# Sanitization \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/103-angular-cli/106-schematics.md b/src/data/roadmaps/angular/content/schematics@Uvr0pRk_fOzwRwqn0dQ6N.md similarity index 100% rename from src/data/roadmaps/angular/content/103-angular-cli/106-schematics.md rename to src/data/roadmaps/angular/content/schematics@Uvr0pRk_fOzwRwqn0dQ6N.md diff --git a/src/data/roadmaps/angular/content/security@mm6c7GLQEwoQdAHdAYzGh.md b/src/data/roadmaps/angular/content/security@mm6c7GLQEwoQdAHdAYzGh.md new file mode 100644 index 000000000..f76df344c --- /dev/null +++ b/src/data/roadmaps/angular/content/security@mm6c7GLQEwoQdAHdAYzGh.md @@ -0,0 +1 @@ +# Security \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/selector@cDN0PGo-zkcLmttxCiAI-.md b/src/data/roadmaps/angular/content/selector@cDN0PGo-zkcLmttxCiAI-.md new file mode 100644 index 000000000..07b3f07f1 --- /dev/null +++ b/src/data/roadmaps/angular/content/selector@cDN0PGo-zkcLmttxCiAI-.md @@ -0,0 +1 @@ +# Selector \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/102-angular-basics/105-services.md b/src/data/roadmaps/angular/content/services---remote-data@CpsoIVoCKaZnM_-BbXbCh.md similarity index 100% rename from src/data/roadmaps/angular/content/102-angular-basics/105-services.md rename to src/data/roadmaps/angular/content/services---remote-data@CpsoIVoCKaZnM_-BbXbCh.md diff --git a/src/data/roadmaps/angular/content/115-testing-angular-apps/101-testing-services.md b/src/data/roadmaps/angular/content/services-with-dependencies@TGRZBizDy83JKg_MhnRdX.md similarity index 100% rename from src/data/roadmaps/angular/content/115-testing-angular-apps/101-testing-services.md rename to src/data/roadmaps/angular/content/services-with-dependencies@TGRZBizDy83JKg_MhnRdX.md diff --git a/src/data/roadmaps/angular/content/setting-up-a-new-project@EbFRcy4s6yzzIApBqU77Y.md b/src/data/roadmaps/angular/content/setting-up-a-new-project@EbFRcy4s6yzzIApBqU77Y.md new file mode 100644 index 000000000..c99d68232 --- /dev/null +++ b/src/data/roadmaps/angular/content/setting-up-a-new-project@EbFRcy4s6yzzIApBqU77Y.md @@ -0,0 +1 @@ +# Setting up a New Project \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/setting-up-the-client@AKPhbg10xXjccO7UBh5eJ.md b/src/data/roadmaps/angular/content/setting-up-the-client@AKPhbg10xXjccO7UBh5eJ.md new file mode 100644 index 000000000..8cdea04b5 --- /dev/null +++ b/src/data/roadmaps/angular/content/setting-up-the-client@AKPhbg10xXjccO7UBh5eJ.md @@ -0,0 +1 @@ +# Setting Up the Client \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/signals@u1TG8i145o0RKhOR_5epf.md b/src/data/roadmaps/angular/content/signals@u1TG8i145o0RKhOR_5epf.md new file mode 100644 index 000000000..ee11f34d5 --- /dev/null +++ b/src/data/roadmaps/angular/content/signals@u1TG8i145o0RKhOR_5epf.md @@ -0,0 +1 @@ +# Signals \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/slow-computations@yxUtSBzJPRcS-IuPsyp-W.md b/src/data/roadmaps/angular/content/slow-computations@yxUtSBzJPRcS-IuPsyp-W.md new file mode 100644 index 000000000..93cd4e78f --- /dev/null +++ b/src/data/roadmaps/angular/content/slow-computations@yxUtSBzJPRcS-IuPsyp-W.md @@ -0,0 +1 @@ +# Slow Computations \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/114-angular-ssg/index.md b/src/data/roadmaps/angular/content/ssg@b-0yQ74zHtAxI9aRLBohc.md similarity index 100% rename from src/data/roadmaps/angular/content/114-angular-ssg/index.md rename to src/data/roadmaps/angular/content/ssg@b-0yQ74zHtAxI9aRLBohc.md diff --git a/src/data/roadmaps/angular/content/113-angular-ssr/index.md b/src/data/roadmaps/angular/content/ssr@jfHaS8TqE4tcAo59K8Nkn.md similarity index 100% rename from src/data/roadmaps/angular/content/113-angular-ssr/index.md rename to src/data/roadmaps/angular/content/ssr@jfHaS8TqE4tcAo59K8Nkn.md diff --git a/src/data/roadmaps/angular/content/standalone@RcNHEh6kmbBK1PICbhAwr.md b/src/data/roadmaps/angular/content/standalone@RcNHEh6kmbBK1PICbhAwr.md new file mode 100644 index 000000000..f9120380a --- /dev/null +++ b/src/data/roadmaps/angular/content/standalone@RcNHEh6kmbBK1PICbhAwr.md @@ -0,0 +1 @@ +# Standalone \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/110-state-management/index.md b/src/data/roadmaps/angular/content/state-management@Mqe_s-nwBqAL6X7OGRHEN.md similarity index 100% rename from src/data/roadmaps/angular/content/110-state-management/index.md rename to src/data/roadmaps/angular/content/state-management@Mqe_s-nwBqAL6X7OGRHEN.md diff --git a/src/data/roadmaps/angular/content/structural-directives@xk3v8p6vf8ntGj5c-IU4U.md b/src/data/roadmaps/angular/content/structural-directives@xk3v8p6vf8ntGj5c-IU4U.md new file mode 100644 index 000000000..43e8776c5 --- /dev/null +++ b/src/data/roadmaps/angular/content/structural-directives@xk3v8p6vf8ntGj5c-IU4U.md @@ -0,0 +1 @@ +# Structural Directives \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/styles@4XJKEmSrQfPxggHlAP30w.md b/src/data/roadmaps/angular/content/styles@4XJKEmSrQfPxggHlAP30w.md new file mode 100644 index 000000000..7bb0b308c --- /dev/null +++ b/src/data/roadmaps/angular/content/styles@4XJKEmSrQfPxggHlAP30w.md @@ -0,0 +1 @@ +# Styles \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/switch@nZuim4Fjq6jYOXcRTAEay.md b/src/data/roadmaps/angular/content/switch@nZuim4Fjq6jYOXcRTAEay.md new file mode 100644 index 000000000..f20ad9d77 --- /dev/null +++ b/src/data/roadmaps/angular/content/switch@nZuim4Fjq6jYOXcRTAEay.md @@ -0,0 +1 @@ +# @switch \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/106-forms/101-template-driven-forms.md b/src/data/roadmaps/angular/content/template-driven-forms@uDx4lPavwsJFBMzdQ70CS.md similarity index 100% rename from src/data/roadmaps/angular/content/106-forms/101-template-driven-forms.md rename to src/data/roadmaps/angular/content/template-driven-forms@uDx4lPavwsJFBMzdQ70CS.md diff --git a/src/data/roadmaps/angular/content/template-ref-vars@Wc2ybRw43uamEtno0FpDv.md b/src/data/roadmaps/angular/content/template-ref-vars@Wc2ybRw43uamEtno0FpDv.md new file mode 100644 index 000000000..e7ad0c96c --- /dev/null +++ b/src/data/roadmaps/angular/content/template-ref-vars@Wc2ybRw43uamEtno0FpDv.md @@ -0,0 +1 @@ +# Template Ref Vars \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/104-templates/104-reference-vars.md b/src/data/roadmaps/angular/content/template-ref-vars@nyDry6ZWyEUuTq4pw-lU3.md similarity index 100% rename from src/data/roadmaps/angular/content/104-templates/104-reference-vars.md rename to src/data/roadmaps/angular/content/template-ref-vars@nyDry6ZWyEUuTq4pw-lU3.md diff --git a/src/data/roadmaps/angular/content/104-templates/102-template-statements.md b/src/data/roadmaps/angular/content/template-statements@t2YOeMONlcnKBrVAo0JDc.md similarity index 100% rename from src/data/roadmaps/angular/content/104-templates/102-template-statements.md rename to src/data/roadmaps/angular/content/template-statements@t2YOeMONlcnKBrVAo0JDc.md diff --git a/src/data/roadmaps/angular/content/template-syntax@VsC7UmE_AumsBP8fC6to1.md b/src/data/roadmaps/angular/content/template-syntax@VsC7UmE_AumsBP8fC6to1.md new file mode 100644 index 000000000..acd044772 --- /dev/null +++ b/src/data/roadmaps/angular/content/template-syntax@VsC7UmE_AumsBP8fC6to1.md @@ -0,0 +1 @@ +# Template Syntax \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/template@-gUpm3OLUJl9iAyx6fmHN.md b/src/data/roadmaps/angular/content/template@-gUpm3OLUJl9iAyx6fmHN.md new file mode 100644 index 000000000..630b32381 --- /dev/null +++ b/src/data/roadmaps/angular/content/template@-gUpm3OLUJl9iAyx6fmHN.md @@ -0,0 +1 @@ +# Template \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/102-angular-basics/102-angular-templates.md b/src/data/roadmaps/angular/content/templates@6fhe9xAi_RSVfa-KKbcbV.md similarity index 100% rename from src/data/roadmaps/angular/content/102-angular-basics/102-angular-templates.md rename to src/data/roadmaps/angular/content/templates@6fhe9xAi_RSVfa-KKbcbV.md diff --git a/src/data/roadmaps/angular/content/115-testing-angular-apps/103-testing-directives.md b/src/data/roadmaps/angular/content/testing-directives@SGqb5k6OmWit8PA6ZT3js.md similarity index 100% rename from src/data/roadmaps/angular/content/115-testing-angular-apps/103-testing-directives.md rename to src/data/roadmaps/angular/content/testing-directives@SGqb5k6OmWit8PA6ZT3js.md diff --git a/src/data/roadmaps/angular/content/115-testing-angular-apps/100-testing-pipes.md b/src/data/roadmaps/angular/content/testing-pipes@rH13NBFG02hnn5eABSNCY.md similarity index 100% rename from src/data/roadmaps/angular/content/115-testing-angular-apps/100-testing-pipes.md rename to src/data/roadmaps/angular/content/testing-pipes@rH13NBFG02hnn5eABSNCY.md diff --git a/src/data/roadmaps/angular/content/testing-requests@4xt0m5jkUqB4Z-krcFBuL.md b/src/data/roadmaps/angular/content/testing-requests@4xt0m5jkUqB4Z-krcFBuL.md new file mode 100644 index 000000000..87b4b32f6 --- /dev/null +++ b/src/data/roadmaps/angular/content/testing-requests@4xt0m5jkUqB4Z-krcFBuL.md @@ -0,0 +1 @@ +# Testing Requests \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/testing-services@HU1eTYB321C93qh_U7ioF.md b/src/data/roadmaps/angular/content/testing-services@HU1eTYB321C93qh_U7ioF.md new file mode 100644 index 000000000..9302496bc --- /dev/null +++ b/src/data/roadmaps/angular/content/testing-services@HU1eTYB321C93qh_U7ioF.md @@ -0,0 +1 @@ +# Testing Services \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/115-testing-angular-apps/index.md b/src/data/roadmaps/angular/content/testing@lLa-OnHV6GzkNFZu29BIT.md similarity index 100% rename from src/data/roadmaps/angular/content/115-testing-angular-apps/index.md rename to src/data/roadmaps/angular/content/testing@lLa-OnHV6GzkNFZu29BIT.md diff --git a/src/data/roadmaps/angular/content/topic-node@IXFTv9zyJUlttQ0zaCSCQ.md b/src/data/roadmaps/angular/content/topic-node@IXFTv9zyJUlttQ0zaCSCQ.md new file mode 100644 index 000000000..59f1a30d4 --- /dev/null +++ b/src/data/roadmaps/angular/content/topic-node@IXFTv9zyJUlttQ0zaCSCQ.md @@ -0,0 +1 @@ +# topic node \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/101-rxjs-basics/104-operators/102-transformation.md b/src/data/roadmaps/angular/content/transformation@kdMJHljMzGA3oRlh8Zvos.md similarity index 100% rename from src/data/roadmaps/angular/content/101-rxjs-basics/104-operators/102-transformation.md rename to src/data/roadmaps/angular/content/transformation@kdMJHljMzGA3oRlh8Zvos.md diff --git a/src/data/roadmaps/angular/content/transitions--triggers@Iv2d4sgODqMPzA9gH6RAw.md b/src/data/roadmaps/angular/content/transitions--triggers@Iv2d4sgODqMPzA9gH6RAw.md new file mode 100644 index 000000000..012fab23c --- /dev/null +++ b/src/data/roadmaps/angular/content/transitions--triggers@Iv2d4sgODqMPzA9gH6RAw.md @@ -0,0 +1 @@ +# Transitions & Triggers \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/translation-files@jL5amGV1BAX_V5cyTIH7d.md b/src/data/roadmaps/angular/content/translation-files@jL5amGV1BAX_V5cyTIH7d.md new file mode 100644 index 000000000..366c2fe12 --- /dev/null +++ b/src/data/roadmaps/angular/content/translation-files@jL5amGV1BAX_V5cyTIH7d.md @@ -0,0 +1 @@ +# Translation Files \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/trusting-safe-values@XoYSuv1salCCHoI1cJkxv.md b/src/data/roadmaps/angular/content/trusting-safe-values@XoYSuv1salCCHoI1cJkxv.md new file mode 100644 index 000000000..76f7284dc --- /dev/null +++ b/src/data/roadmaps/angular/content/trusting-safe-values@XoYSuv1salCCHoI1cJkxv.md @@ -0,0 +1 @@ +# Trusting Safe Values \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/two-way-binding@2UH79nCjgtY1Qz1YjUJYL.md b/src/data/roadmaps/angular/content/two-way-binding@2UH79nCjgtY1Qz1YjUJYL.md new file mode 100644 index 000000000..368a44138 --- /dev/null +++ b/src/data/roadmaps/angular/content/two-way-binding@2UH79nCjgtY1Qz1YjUJYL.md @@ -0,0 +1 @@ +# Two-way Binding \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/typed-forms@XC_K1Wahl2ySqOXoym4YU.md b/src/data/roadmaps/angular/content/typed-forms@XC_K1Wahl2ySqOXoym4YU.md new file mode 100644 index 000000000..6abc3693c --- /dev/null +++ b/src/data/roadmaps/angular/content/typed-forms@XC_K1Wahl2ySqOXoym4YU.md @@ -0,0 +1 @@ +# Typed Forms \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/ui-components@CZ1YRyai8Ds-ry4A8jVbr.md b/src/data/roadmaps/angular/content/ui-components@CZ1YRyai8Ds-ry4A8jVbr.md new file mode 100644 index 000000000..e00236207 --- /dev/null +++ b/src/data/roadmaps/angular/content/ui-components@CZ1YRyai8Ds-ry4A8jVbr.md @@ -0,0 +1 @@ +# UI Components \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/104-templates/103-binding-data-props-attrs-events.md b/src/data/roadmaps/angular/content/understand-binding@WH5wlyOtrqFHBJx7RFJwS.md similarity index 100% rename from src/data/roadmaps/angular/content/104-templates/103-binding-data-props-attrs-events.md rename to src/data/roadmaps/angular/content/understand-binding@WH5wlyOtrqFHBJx7RFJwS.md diff --git a/src/data/roadmaps/angular/content/using-libraries@YHV5oFwLwphXf1wJTDZuG.md b/src/data/roadmaps/angular/content/using-libraries@YHV5oFwLwphXf1wJTDZuG.md new file mode 100644 index 000000000..e781ac779 --- /dev/null +++ b/src/data/roadmaps/angular/content/using-libraries@YHV5oFwLwphXf1wJTDZuG.md @@ -0,0 +1 @@ +# Using Libraries \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/viewchild@v0XaLNZ-YrRqP-xv8wS43.md b/src/data/roadmaps/angular/content/viewchild@v0XaLNZ-YrRqP-xv8wS43.md new file mode 100644 index 000000000..7041da4e8 --- /dev/null +++ b/src/data/roadmaps/angular/content/viewchild@v0XaLNZ-YrRqP-xv8wS43.md @@ -0,0 +1 @@ +# ViewChild \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/viewprovider@doHDoAgp7T59KGSXPpQzZ.md b/src/data/roadmaps/angular/content/viewprovider@doHDoAgp7T59KGSXPpQzZ.md new file mode 100644 index 000000000..3f2d7f49c --- /dev/null +++ b/src/data/roadmaps/angular/content/viewprovider@doHDoAgp7T59KGSXPpQzZ.md @@ -0,0 +1 @@ +# viewProvider \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/writing-interceptors@xG7iSVOGcbxJbNv3xbNfc.md b/src/data/roadmaps/angular/content/writing-interceptors@xG7iSVOGcbxJbNv3xbNfc.md new file mode 100644 index 000000000..0058e8235 --- /dev/null +++ b/src/data/roadmaps/angular/content/writing-interceptors@xG7iSVOGcbxJbNv3xbNfc.md @@ -0,0 +1 @@ +# Writing Interceptors \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/xsrf-protection@ni00edsphJd7uBLCn7-Vw.md b/src/data/roadmaps/angular/content/xsrf-protection@ni00edsphJd7uBLCn7-Vw.md new file mode 100644 index 000000000..be845b3f6 --- /dev/null +++ b/src/data/roadmaps/angular/content/xsrf-protection@ni00edsphJd7uBLCn7-Vw.md @@ -0,0 +1 @@ +# XSRF protection \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/zone-pollution@pRSR5PEbkJXAJ1LPyK-EE.md b/src/data/roadmaps/angular/content/zone-pollution@pRSR5PEbkJXAJ1LPyK-EE.md new file mode 100644 index 000000000..790b8d56a --- /dev/null +++ b/src/data/roadmaps/angular/content/zone-pollution@pRSR5PEbkJXAJ1LPyK-EE.md @@ -0,0 +1 @@ +# Zone Pollution \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/zoneless-applications@1x5pT607aKE-S-NCWB810.md b/src/data/roadmaps/angular/content/zoneless-applications@1x5pT607aKE-S-NCWB810.md new file mode 100644 index 000000000..a9f2c2679 --- /dev/null +++ b/src/data/roadmaps/angular/content/zoneless-applications@1x5pT607aKE-S-NCWB810.md @@ -0,0 +1 @@ +# Zoneless Applications \ No newline at end of file diff --git a/src/data/roadmaps/angular/content/111-zones.md b/src/data/roadmaps/angular/content/zones@m4WBnx_9h01Jl6Q1sxi4Y.md similarity index 100% rename from src/data/roadmaps/angular/content/111-zones.md rename to src/data/roadmaps/angular/content/zones@m4WBnx_9h01Jl6Q1sxi4Y.md diff --git a/src/data/roadmaps/angular/migration-mapping.json b/src/data/roadmaps/angular/migration-mapping.json new file mode 100644 index 000000000..c9bb91285 --- /dev/null +++ b/src/data/roadmaps/angular/migration-mapping.json @@ -0,0 +1,53 @@ +{ + "rxjs-basics": "lfp7PIjwITU5gBITQdirD", + "rxjs-basics:observable-pattern": "krXA6ua7E3m4IIpFkgQZe", + "rxjs-basics:observable-lifecycle": "b06Y5YrqBbHhWkK6Ws_1c", + "rxjs-basics:rxjs-vs-promises": "e1ZmmxPZuogCNgtbPPWmd", + "rxjs-basics:operators": "ihsjIcF0tkhjs56458teE", + "rxjs-basics:operators:filtering": "nxUbl0eu3LsSL-Z8X6nP5", + "rxjs-basics:operators:rate-limiting": "bJbbayFQ9WSJT9-qy0H5l", + "rxjs-basics:operators:transformation": "kdMJHljMzGA3oRlh8Zvos", + "rxjs-basics:operators:combination": "IgUHqfVhiGpwxT9tY8O88", + "angular-basics:angular-components": "kGnKzCkQCNFEdgCBRtNuW", + "angular-basics:angular-templates": "6fhe9xAi_RSVfa-KKbcbV", + "angular-basics:angular-modules": "b_kdNS9PDupcUftslkf9i", + "angular-basics:dependency-injection": "8u9uHCRt9RU57erBy79PP", + "angular-basics:services": "CpsoIVoCKaZnM_-BbXbCh", + "angular-basics:routing": "a74v78SvGtWduZpXs7wSq", + "forms": "Q36LQds8k_cSjijvXyWOM", + "rendering-topics:builtin-directives": "kGzlumFdZFxTRZ3HnCGFO", + "rendering-topics:builtin-pipes": "j99WQxuTzGeBBVoReDp_y", + "rendering-topics:change-detection": "_-mTs_FMeob-ZGK-bb3j-", + "routing:configuration": "dbAS-hN1hoCsNJhkxXcGq", + "routing:lazy-loading": "ewbDdPYv2SJl_jW3RVHQs", + "routing:router-outlets": "1ZwdEL0Gx30Vv_Av3ZTGG", + "routing:router-links": "8lFyuSx4MUcYRY2L8bZrq", + "routing:router-events": "YF_sG292HqawIX0siWhrv", + "routing:guards": "PmC4zeaLpa5LoL4FhYXcG", + "state-management:ngxs": "N9ZCPgFnFIUv4jMv1w5qK", + "state-management:ngrx": "ir94IdkF1tVAA8ZTD9r0N", + "zones": "m4WBnx_9h01Jl6Q1sxi4Y", + "creating-a-custom-x:directive": "7GUvTMVzfdVEDBOz-tHUT", + "creating-a-custom-x:pipe": "BOYXGfULJRiP-XOo_lNX3", + "creating-a-custom-x:library": "cl89U8atD6gw5rMGUm4Ix", + "testing-angular-apps": "lLa-OnHV6GzkNFZu29BIT", + "testing-angular-apps:testing-pipes": "rH13NBFG02hnn5eABSNCY", + "testing-angular-apps:testing-services": "TGRZBizDy83JKg_MhnRdX", + "testing-angular-apps:testing-component-bindings": "cXVy1lx2XqY_j8gxz-y60", + "testing-angular-apps:testing-directives": "SGqb5k6OmWit8PA6ZT3js", + "testing-angular-apps:testing-component-templates": "0dYWO_Zvh9J5_6cRjRjvI", + "angular-ssg": "b-0yQ74zHtAxI9aRLBohc", + "angular-ssr": "jfHaS8TqE4tcAo59K8Nkn", + "lifecycle-hooks": "nCpfj_35ZvW-NTygg06XZ", + "state-management": "Mqe_s-nwBqAL6X7OGRHEN", + "forms:reactive-forms": "1d3Y4HVnqom8UOok-7EEf", + "forms:template-driven-forms": "uDx4lPavwsJFBMzdQ70CS", + "angular-cli": "4YSk6I63Ew--zoXC3xmrC", + "angular-cli:schematics": "Uvr0pRk_fOzwRwqn0dQ6N", + "templates:template-statements": "t2YOeMONlcnKBrVAo0JDc", + "templates:binding-data-props-attrs-events": "WH5wlyOtrqFHBJx7RFJwS", + "templates:interpolation": "XHpfHRIlFh19FJIE07u7i", + "templates:property-binding": "TJOZfHtsLfwA0CZ2bd1b2", + "templates:reference-vars": "nyDry6ZWyEUuTq4pw-lU3", + "templates:input-output": "VsU6713jeIjAOEZnF6gWx" +} \ No newline at end of file diff --git a/src/lib/resource-progress.ts b/src/lib/resource-progress.ts index 1539d616f..e5c237358 100644 --- a/src/lib/resource-progress.ts +++ b/src/lib/resource-progress.ts @@ -107,6 +107,7 @@ export function clearMigratedRoadmapProgress( 'react', 'vue', 'javascript', + 'angular', ]; if (!migratedRoadmaps.includes(resourceId)) {