cursor-usage-analyzer 0.2.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/.claude/settings.local.json +12 -6
  2. package/README.md +14 -0
  3. package/analyze.js +277 -49
  4. package/cursor-logs-export/chats/2026-02-05_2026-02-10_08-35-54_uu_app_aicoding_conv55.txt +49 -0
  5. package/cursor-logs-export/chats/2026-02-05_2026-02-10_08-36-35_uu_app_aicoding_conv54.txt +241 -0
  6. package/cursor-logs-export/chats/2026-02-05_2026-02-10_08-47-45_uu_app_aicoding_conv56.txt +122 -0
  7. package/cursor-logs-export/chats/2026-02-05_2026-02-10_08-56-31_uu_app_aicoding_conv40.txt +80 -0
  8. package/cursor-logs-export/chats/2026-02-05_2026-02-10_08-58-09__unmatched__conv108.txt +26 -0
  9. package/cursor-logs-export/chats/2026-02-05_2026-02-10_08-59-08_uu_app_aicoding_conv57.txt +306 -0
  10. package/cursor-logs-export/chats/2026-02-05_2026-02-10_09-00-49_uu_app_aicoding_conv41.txt +149 -0
  11. package/cursor-logs-export/chats/2026-02-05_2026-02-10_09-04-15_uu_app_aicoding_conv58.txt +143 -0
  12. package/cursor-logs-export/chats/2026-02-05_2026-02-10_09-06-29_uu_app_aicoding_conv59.txt +119 -0
  13. package/cursor-logs-export/chats/2026-02-05_2026-02-10_09-17-49_uu_app_aicoding_conv60.txt +227 -0
  14. package/cursor-logs-export/chats/2026-02-05_2026-02-10_09-18-36_uu_app_aicoding_conv70.txt +193 -0
  15. package/cursor-logs-export/chats/2026-02-05_2026-02-10_09-26-21_uu_app_aicoding_conv42.txt +111 -0
  16. package/cursor-logs-export/chats/2026-02-05_2026-02-10_09-31-34_uu_app_aicoding_conv71.txt +232 -0
  17. package/cursor-logs-export/chats/2026-02-05_2026-02-10_09-40-01_uu_app_aicoding_conv72.txt +125 -0
  18. package/cursor-logs-export/chats/2026-02-05_2026-02-10_09-49-58_uu_app_aicoding_conv73.txt +64 -0
  19. package/cursor-logs-export/chats/2026-02-05_2026-02-10_09-57-27_uu_entitymanage_conv43.txt +157 -0
  20. package/cursor-logs-export/chats/2026-02-05_2026-02-10_10-02-36_uu_app_aicoding_conv44.txt +294 -0
  21. package/cursor-logs-export/chats/2026-02-05_2026-02-10_10-48-21_uu_app_aicoding_conv79.txt +181 -0
  22. package/cursor-logs-export/chats/2026-02-05_2026-02-10_11-13-29_uu_app_aicoding_conv45.txt +160 -0
  23. package/cursor-logs-export/chats/2026-02-05_2026-02-10_11-19-00_uu_app_aicoding_conv46.txt +82 -0
  24. package/cursor-logs-export/chats/2026-02-05_2026-02-10_11-21-15_uu_app_aicoding_conv74.txt +103 -0
  25. package/cursor-logs-export/chats/2026-02-05_2026-02-10_11-25-21_uu_app_aicoding_conv75.txt +119 -0
  26. package/cursor-logs-export/chats/2026-02-05_2026-02-10_11-26-01_uu_app_aicoding_conv47.txt +266 -0
  27. package/cursor-logs-export/chats/2026-02-05_2026-02-10_11-31-42_uu_entitymanage_conv48.txt +130 -0
  28. package/cursor-logs-export/chats/2026-02-05_2026-02-10_11-33-00_uu_app_aicoding_conv1.txt +260 -0
  29. package/cursor-logs-export/chats/2026-02-05_2026-02-10_11-51-10_uu_app_aicoding_conv80.txt +68 -0
  30. package/cursor-logs-export/chats/2026-02-05_2026-02-10_12-24-42_cursor_usage_an_conv106.txt +769 -0
  31. package/cursor-logs-export/chats/2026-02-05_2026-02-10_12-37-27_uu_app_aicoding_conv2.txt +897 -0
  32. package/cursor-logs-export/chats/2026-02-05_2026-02-10_12-48-53__unmatched__conv109.txt +26 -0
  33. package/cursor-logs-export/chats/2026-02-05_2026-02-10_12-51-19_uu_app_aicoding_conv3.txt +72 -0
  34. package/cursor-logs-export/chats/2026-02-05_2026-02-10_13-01-28_uu_app_aicoding_conv4.txt +112 -0
  35. package/cursor-logs-export/chats/2026-02-05_2026-02-10_13-21-29_uu_app_aicoding_conv5.txt +286 -0
  36. package/cursor-logs-export/chats/2026-02-05_2026-02-10_14-14-37_uu_app_aicoding_conv76.txt +765 -0
  37. package/cursor-logs-export/chats/2026-02-05_2026-02-10_14-25-53_uu_app_aicoding_conv7.txt +134 -0
  38. package/cursor-logs-export/chats/2026-02-05_2026-02-10_14-31-19_uu_app_aicoding_conv8.txt +118 -0
  39. package/cursor-logs-export/chats/2026-02-05_2026-02-10_15-15-16_uu_app_aicoding_conv9.txt +4644 -0
  40. package/cursor-logs-export/chats/2026-02-05_2026-02-10_15-20-50_uu_app_aicoding_conv6.txt +945 -0
  41. package/cursor-logs-export/chats/2026-02-05_2026-02-10_16-00-41_cursor_usage_an_conv107.txt +85 -0
  42. package/cursor-logs-export/chats/2026-02-05_2026-02-10_16-25-01_uu_app_aicoding_conv11.txt +274 -0
  43. package/cursor-logs-export/chats/2026-02-05_2026-02-10_16-29-52_uu_app_aicoding_conv10.txt +1603 -0
  44. package/cursor-logs-export/chats/2026-02-05_2026-02-10_16-38-00_uu_app_aicoding_conv12.txt +96 -0
  45. package/cursor-logs-export/chats/2026-02-05_2026-02-10_16-43-55_uu_app_aicoding_conv13.txt +74 -0
  46. package/cursor-logs-export/chats/2026-02-05_2026-02-10_16-47-13_uu_app_aicoding_conv14.txt +172 -0
  47. package/cursor-logs-export/chats/2026-02-05_2026-02-10_16-48-38_uu_cloud_univer_conv82.txt +253 -0
  48. package/cursor-logs-export/chats/2026-02-05_2026-02-10_16-51-54_uu_app_aicoding_conv16.txt +189 -0
  49. package/cursor-logs-export/chats/2026-02-05_2026-02-10_16-51-54_uu_app_aicoding_conv17.txt +57 -0
  50. package/cursor-logs-export/chats/2026-02-05_2026-02-10_16-59-13_uu_app_aicoding_conv15.txt +36 -0
  51. package/cursor-logs-export/chats/2026-02-05_2026-02-10_17-03-28_uu_app_aicoding_conv18.txt +212 -0
  52. package/cursor-logs-export/chats/2026-02-05_2026-02-10_17-05-14_uu_app_aicoding_conv19.txt +87 -0
  53. package/cursor-logs-export/chats/2026-02-05_2026-02-10_17-13-17_uu_app_aicoding_conv20.txt +77 -0
  54. package/cursor-logs-export/chats/2026-02-05_2026-02-10_17-25-15_uu_app_aicoding_conv21.txt +131 -0
  55. package/cursor-logs-export/chats/2026-02-05_2026-02-10_17-31-30_uu_app_aicoding_conv23.txt +108 -0
  56. package/cursor-logs-export/chats/2026-02-05_2026-02-10_17-38-46_uu_app_aicoding_conv81.txt +428 -0
  57. package/cursor-logs-export/chats/2026-02-05_2026-02-10_17-43-08_uu_app_aicoding_conv24.txt +15297 -0
  58. package/cursor-logs-export/chats/2026-02-05_2026-02-10_17-51-39_uu_app_aicoding_conv22.txt +60 -0
  59. package/cursor-logs-export/chats/2026-02-05_2026-02-10_17-59-43_uu_app_aicoding_conv25.txt +189 -0
  60. package/cursor-logs-export/chats/2026-02-05_2026-02-10_18-03-50_uu_app_aicoding_conv26.txt +120 -0
  61. package/cursor-logs-export/chats/2026-02-05_2026-02-10_18-30-45_uu_app_aicoding_conv83.txt +523 -0
  62. package/cursor-logs-export/chats/2026-02-05_2026-02-10_18-32-40_uu_app_aicoding_conv27.txt +3941 -0
  63. package/cursor-logs-export/chats/2026-02-05_2026-02-10_18-39-32_uu_app_aicoding_conv84.txt +133 -0
  64. package/cursor-logs-export/chats/2026-02-05_2026-02-10_18-41-01_uu_app_aicoding_conv28.txt +136 -0
  65. package/cursor-logs-export/chats/2026-02-05_2026-02-10_18-56-27_uu_app_aicoding_conv85.txt +211 -0
  66. package/cursor-logs-export/chats/2026-02-05_2026-02-10_19-10-56_uu_app_aicoding_conv86.txt +319 -0
  67. package/cursor-logs-export/chats/2026-02-05_2026-02-10_19-22-42_uu_app_aicoding_conv87.txt +193 -0
  68. package/cursor-logs-export/chats/2026-02-05_2026-02-10_19-27-57_uu_app_aicoding_conv88.txt +272 -0
  69. package/cursor-logs-export/chats/2026-02-05_2026-02-10_19-32-27_uu_app_aicoding_conv89.txt +50 -0
  70. package/cursor-logs-export/chats/2026-02-05_2026-02-10_19-42-59_uu_app_aicoding_conv90.txt +125 -0
  71. package/cursor-logs-export/chats/2026-02-05_2026-02-10_19-47-01_uu_app_aicoding_conv91.txt +102 -0
  72. package/cursor-logs-export/chats/2026-02-05_2026-02-10_19-58-26_uu_app_aicoding_conv92.txt +145 -0
  73. package/cursor-logs-export/chats/2026-02-05_2026-02-10_20-43-25_uu_app_aicoding_conv93.txt +553 -0
  74. package/cursor-logs-export/chats/2026-02-05_2026-02-10_20-56-36_uu_app_aicoding_conv95.txt +195 -0
  75. package/cursor-logs-export/chats/2026-02-05_2026-02-10_20-58-23_uu_app_aicoding_conv96.txt +86 -0
  76. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-01-26_uu_app_aicoding_conv94.txt +116 -0
  77. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-03-46_uu_app_aicoding_conv61.txt +1743 -0
  78. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-06-54_uu_app_aicoding_conv97.txt +102 -0
  79. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-07-32_uu_app_aicoding_conv29.txt +9930 -0
  80. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-09-02_uu_app_aicoding_conv98.txt +111 -0
  81. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-11-07_uu_app_aicoding_conv49.txt +170 -0
  82. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-16-16_uu_app_aicoding_conv62.txt +200 -0
  83. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-17-18_uu_app_aicoding_conv31.txt +351 -0
  84. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-26-32_uu_app_aicoding_conv99.txt +219 -0
  85. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-29-18_uu_app_aicoding_conv100.txt +121 -0
  86. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-33-35_uu_app_aicoding_conv30.txt +204 -0
  87. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-38-37_uu_app_aicoding_conv63.txt +251 -0
  88. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-42-10_uu_entitymanage_conv33.txt +163 -0
  89. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-43-41_uu_app_aicoding_conv64.txt +139 -0
  90. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-43-53_uu_app_aicoding_conv101.txt +221 -0
  91. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-44-55_uu_app_aicoding_conv50.txt +156 -0
  92. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-47-10_uu_app_aicoding_conv65.txt +136 -0
  93. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-48-40_uu_app_aicoding_conv51.txt +130 -0
  94. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-49-31_uu_app_aicoding_conv102.txt +153 -0
  95. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-49-44_uu_app_aicoding_conv66.txt +54 -0
  96. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-51-05_uu_app_aicoding_conv67.txt +55 -0
  97. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-51-26_uu_app_aicoding_conv32.txt +6172 -0
  98. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-56-08_uu_app_aicoding_conv103.txt +102 -0
  99. package/cursor-logs-export/chats/2026-02-05_2026-02-10_21-59-00_uu_app_aicoding_conv52.txt +244 -0
  100. package/cursor-logs-export/chats/2026-02-05_2026-02-10_22-10-16_uu_app_aicoding_conv77.txt +61 -0
  101. package/cursor-logs-export/chats/2026-02-05_2026-02-10_22-11-24_uu_app_aicoding_conv68.txt +142 -0
  102. package/cursor-logs-export/chats/2026-02-05_2026-02-10_22-12-31_uu_app_aicoding_conv104.txt +66 -0
  103. package/cursor-logs-export/chats/2026-02-05_2026-02-10_22-16-03_uu_app_aicoding_conv53.txt +439 -0
  104. package/cursor-logs-export/chats/2026-02-05_2026-02-10_22-23-41_uu_entitymanage_conv34.txt +2251 -0
  105. package/cursor-logs-export/chats/2026-02-05_2026-02-10_22-25-56_uu_app_aicoding_conv69.txt +169 -0
  106. package/cursor-logs-export/chats/2026-02-05_2026-02-10_22-26-54_uu_app_aicoding_conv105.txt +70 -0
  107. package/cursor-logs-export/chats/2026-02-05_2026-02-10_22-33-45_uu_entitymanage_conv35.txt +144 -0
  108. package/cursor-logs-export/chats/2026-02-05_2026-02-10_22-39-23_uu_app_aicoding_conv37.txt +104 -0
  109. package/cursor-logs-export/chats/2026-02-05_2026-02-10_22-45-30_uu_app_aicoding_conv78.txt +187 -0
  110. package/cursor-logs-export/chats/2026-02-05_2026-02-10_23-04-38_uu_app_aicoding_conv36.txt +2292 -0
  111. package/cursor-logs-export/chats/2026-02-05_2026-02-10_23-08-50_uu_entitymanage_conv38.txt +109 -0
  112. package/cursor-logs-export/chats/2026-02-05_2026-02-10_23-14-01_uu_entitymanage_conv39.txt +112 -0
  113. package/cursor-logs-export/report.html +3071 -0
  114. package/html-template.js +610 -18
  115. package/package.json +19 -6
  116. package/.idea/cursor-usage-analyzer.iml +0 -12
  117. package/.idea/modules.xml +0 -8
  118. package/.idea/vcs.xml +0 -11
  119. package/cursor-usage-analyzer-0.1.0.tgz +0 -0
  120. package/cursor-usage-analyzer-0.2.0.tgz +0 -0
  121. package/cursor-usage-analyzer-0.2.1.tgz +0 -0
  122. package/team-usage-events-10287858-2025-12-18.csv +0 -600
@@ -0,0 +1,2292 @@
1
+ ================================================================================
2
+ CONVERSATION #36
3
+ Name: BML diagram generator line types
4
+ Workspace: uu_app_aicodingg01
5
+ Time: 2/5/2026, 11:04:38 PM
6
+ Model: claude-4.5-opus-high-thinking
7
+ Context Tokens: 60,746 / 164,000 (37.0%)
8
+ Changes: +0 -0 lines in 0 files
9
+ Messages: 43
10
+ Composer ID: 98b414ec-809a-4ae7-8fbb-6c138881f50d
11
+
12
+ API TOKEN USAGE (from dashboard export):
13
+ API Calls: 5
14
+ Input (w/ Cache Write): 626,566
15
+ Input (w/o Cache Write): 269,082
16
+ Cache Read: 4,780,961
17
+ Output Tokens: 37,165
18
+ Total API Tokens: 5,713,774
19
+ Cost: $8.59
20
+
21
+ ================================================================================
22
+
23
+
24
+ --------------------------------------------------------------------------------
25
+ [USER] 11:04:38 PM
26
+ --------------------------------------------------------------------------------
27
+ lets look on this diagram and mainly look on the lines tpes and when they are used
28
+ <UuBml.Draw.Diagram value="<uu5json/>{
29
+ \"id\": \"6028d55f9964a4224933076d3a1b8469\",
30
+ \"author\": \"25-533-1\",
31
+ \"size\": {
32
+ \"width\": 2000,
33
+ \"height\": 1272
34
+ },
35
+ \"editMode\": {
36
+ \"frameVisible\": true,
37
+ \"gridVisible\": true,
38
+ \"socketsVisible\": false,
39
+ \"plugsVisible\": false,
40
+ \"anchorsVisible\": false,
41
+ \"consoleVisible\": false
42
+ },
43
+ \"presentationMode\": {
44
+ \"frameVisible\": false,
45
+ \"gridVisible\": false,
46
+ \"socketsVisible\": false,
47
+ \"plugsVisible\": false,
48
+ \"anchorsVisible\": false,
49
+ \"descriptionVisible\": true
50
+ },
51
+ \"elementMap\": {
52
+ \"64218953\": {
53
+ \"id\": \"64218953\",
54
+ \"elementType\": \"Annotation\",
55
+ \"searchKey\": \"\",
56
+ \"size\": {
57
+ \"width\": 288,
58
+ \"height\": 96
59
+ },
60
+ \"position\": {
61
+ \"x\": 216,
62
+ \"y\": 216
63
+ },
64
+ \"text\": \"<uu5string /><div><span style=\\\"<uu5json />{\\\\\\\"backgroundColor\\\\\\\":\\\\\\\"rgba(255, 217, 230, 0\\\\\\\"}\\\">There are more components between this one and its parent component. </span></div><br /><div><span style=\\\"<uu5json />{\\\\\\\"backgroundColor\\\\\\\":\\\\\\\"rgba(255, 217, 230, 0\\\\\\\"}\\\">The components behind this line are not important in this diagram. </span></div>\",
65
+ \"pointerStart\": {
66
+ \"positionOnAnnotation\": [
67
+ \"bottom\",
68
+ \"left\",
69
+ \"top\",
70
+ \"right\"
71
+ ],
72
+ \"pointList\": [
73
+ {
74
+ \"x\": 504,
75
+ \"y\": 256
76
+ },
77
+ {
78
+ \"x\": 504,
79
+ \"y\": 272
80
+ }
81
+ ],
82
+ \"orderInPolygon\": 2
83
+ },
84
+ \"pointerEnd\": {
85
+ \"pointType\": \"Plug\",
86
+ \"id\": \"c485c9cc\"
87
+ },
88
+ \"plugMap\": {
89
+ \"c485c9cc\": {
90
+ \"id\": \"c485c9cc\",
91
+ \"position\": {
92
+ \"x\": 608,
93
+ \"y\": 256
94
+ }
95
+ }
96
+ },
97
+ \"anchorPositionMap\": {
98
+ \"topLeft\": \"a4852a94\",
99
+ \"topMiddle\": \"34dd786b\",
100
+ \"topRight\": \"740cdadc\",
101
+ \"right\": \"f4134981\",
102
+ \"bottomRight\": \"44a78a1c\",
103
+ \"bottomMiddle\": \"c42c490b\",
104
+ \"bottomLeft\": \"04c5eae2\",
105
+ \"left\": \"64c88954\"
106
+ }
107
+ },
108
+ \"74383907\": {
109
+ \"id\": \"74383907\",
110
+ \"elementType\": \"Icon\",
111
+ \"sourceUuBmlStencil\": \"uuappmodelkit\",
112
+ \"uuBmlIconCode\": \"uu5Uve\",
113
+ \"position\": {
114
+ \"x\": 576,
115
+ \"y\": 128
116
+ },
117
+ \"uuIdentity\": null,
118
+ \"text\": \"User visual entrypoint\",
119
+ \"searchKey\": \"\",
120
+ \"textHidden\": false,
121
+ \"textWidth\": 192,
122
+ \"importance\": \"normal\",
123
+ \"plural\": false,
124
+ \"state\": {},
125
+ \"label\": {},
126
+ \"topPointList\": [
127
+ \"6474ca3c\",
128
+ \"54a70a54\",
129
+ \"04aa5a40\",
130
+ \"949ba8ba\",
131
+ \"746efa72\",
132
+ \"64df5847\",
133
+ \"c4e7385c\",
134
+ \"24b22be6\",
135
+ \"d472d879\"
136
+ ],
137
+ \"rightPointList\": [
138
+ \"c4225b3c\",
139
+ \"a4cc9b21\",
140
+ \"e4bd2b2c\",
141
+ \"840a088d\",
142
+ \"b430c889\",
143
+ \"e4462812\",
144
+ \"e4687a77\",
145
+ \"84915a94\"
146
+ ],
147
+ \"leftPointList\": [
148
+ \"f45b88a2\",
149
+ \"84ca3808\",
150
+ \"54aba8fc\",
151
+ \"c414fbf3\",
152
+ \"a472eb86\",
153
+ \"14ac98f3\",
154
+ \"54b81be7\",
155
+ \"b4607839\"
156
+ ],
157
+ \"bottomPointList\": [
158
+ \"44194974\",
159
+ \"64794912\",
160
+ \"c431fbf2\",
161
+ \"14cd19aa\",
162
+ \"a495b86c\",
163
+ \"84a4f984\",
164
+ \"945cb8e0\",
165
+ \"14a80a1c\",
166
+ \"94f159e5\"
167
+ ],
168
+ \"textBackgroundVisible\": false,
169
+ \"pluggedSocketsMap\": {
170
+ \"a495b86c\": [
171
+ {
172
+ \"elementId\": \"4415e81f\",
173
+ \"plugId\": \"d4703b8c\"
174
+ }
175
+ ]
176
+ }
177
+ },
178
+ \"748dc95f\": {
179
+ \"id\": \"748dc95f\",
180
+ \"elementType\": \"Icon\",
181
+ \"sourceUuBmlStencil\": \"uu5\",
182
+ \"uuBmlIconCode\": \"hook\",
183
+ \"position\": {
184
+ \"x\": 704,
185
+ \"y\": 320
186
+ },
187
+ \"uuIdentity\": null,
188
+ \"text\": \"Hook\",
189
+ \"searchKey\": \"\",
190
+ \"textHidden\": false,
191
+ \"textWidth\": 64,
192
+ \"importance\": \"normal\",
193
+ \"plural\": false,
194
+ \"state\": {},
195
+ \"label\": {},
196
+ \"topPointList\": [
197
+ \"8400c85e\",
198
+ \"f4118a0e\",
199
+ \"7453191b\",
200
+ \"8447b9c9\",
201
+ \"f432191b\",
202
+ \"d412089f\",
203
+ \"e4245aad\",
204
+ \"b4230b4c\",
205
+ \"b49669f2\"
206
+ ],
207
+ \"rightPointList\": [
208
+ \"8428aa34\",
209
+ \"c4d8c872\",
210
+ \"94049956\",
211
+ \"f4e658d5\",
212
+ \"74e8694d\",
213
+ \"546e9aad\",
214
+ \"64f04a11\",
215
+ \"7448fb14\"
216
+ ],
217
+ \"leftPointList\": [
218
+ \"347c69d5\",
219
+ \"04570934\",
220
+ \"74fbca19\",
221
+ \"744db9ef\",
222
+ \"c408f91a\",
223
+ \"c40f7b98\",
224
+ \"b430b8d1\",
225
+ \"9421a9c4\"
226
+ ],
227
+ \"bottomPointList\": [
228
+ \"24f6fa50\",
229
+ \"d4c3a8b0\",
230
+ \"94f6184e\",
231
+ \"04cd1bca\",
232
+ \"d4e09911\",
233
+ \"546d1953\",
234
+ \"c40d58ce\",
235
+ \"a4dedb2c\",
236
+ \"b40b6b70\"
237
+ ],
238
+ \"pluggedSocketsMap\": {
239
+ \"744db9ef\": [
240
+ {
241
+ \"elementId\": \"d49cf9fd\",
242
+ \"plugId\": \"64ffe930\"
243
+ }
244
+ ]
245
+ }
246
+ },
247
+ \"d493e9a9\": {
248
+ \"id\": \"d493e9a9\",
249
+ \"elementType\": \"Icon\",
250
+ \"sourceUuBmlStencil\": \"uuappcommon\",
251
+ \"uuBmlIconCode\": \"command\",
252
+ \"position\": {
253
+ \"x\": 960,
254
+ \"y\": 448
255
+ },
256
+ \"uuIdentity\": null,
257
+ \"text\": \"uuCmd\",
258
+ \"searchKey\": \"\",
259
+ \"textHidden\": false,
260
+ \"textWidth\": 64,
261
+ \"importance\": \"highest\",
262
+ \"plural\": false,
263
+ \"state\": {},
264
+ \"label\": {},
265
+ \"topPointList\": [
266
+ \"d4d2b9d7\",
267
+ \"d45fb916\",
268
+ \"34de997d\",
269
+ \"3428693f\",
270
+ \"44874942\",
271
+ \"e42afafa\",
272
+ \"5459b956\",
273
+ \"f404385d\",
274
+ \"84e848f5\"
275
+ ],
276
+ \"rightPointList\": [
277
+ \"b4573be0\",
278
+ \"046fa990\",
279
+ \"1436089e\",
280
+ \"14eb1be3\",
281
+ \"b4d28942\",
282
+ \"54265a11\",
283
+ \"e40ad830\",
284
+ \"14fac876\"
285
+ ],
286
+ \"leftPointList\": [
287
+ \"e412899f\",
288
+ \"a4708871\",
289
+ \"941c0bc2\",
290
+ \"749a5932\",
291
+ \"3417ab50\",
292
+ \"a4bcba05\",
293
+ \"b4f1aa29\",
294
+ \"b40d6a76\"
295
+ ],
296
+ \"bottomPointList\": [
297
+ \"f466fb8b\",
298
+ \"24d83972\",
299
+ \"5458b9ee\",
300
+ \"649078e2\",
301
+ \"b473d90c\",
302
+ \"24bf0907\",
303
+ \"845c2a93\",
304
+ \"045abbc6\",
305
+ \"54ccc94d\"
306
+ ],
307
+ \"pluggedSocketsMap\": {
308
+ \"14eb1be3\": [
309
+ {
310
+ \"elementId\": \"44d23b4a\",
311
+ \"plugId\": \"34ba784c\"
312
+ }
313
+ ],
314
+ \"749a5932\": [
315
+ {
316
+ \"elementId\": \"54df2a76\",
317
+ \"plugId\": \"94b67bbd\"
318
+ }
319
+ ]
320
+ }
321
+ },
322
+ \"041dab0a\": {
323
+ \"id\": \"041dab0a\",
324
+ \"elementType\": \"Icon\",
325
+ \"sourceUuBmlStencil\": \"uuappcommon\",
326
+ \"uuBmlIconCode\": \"method\",
327
+ \"position\": {
328
+ \"x\": 832,
329
+ \"y\": 448
330
+ },
331
+ \"uuIdentity\": null,
332
+ \"text\": \"Method\",
333
+ \"searchKey\": \"\",
334
+ \"textHidden\": false,
335
+ \"textWidth\": 64,
336
+ \"importance\": \"normal\",
337
+ \"plural\": false,
338
+ \"state\": {},
339
+ \"label\": {},
340
+ \"topPointList\": [
341
+ \"c46e6863\",
342
+ \"b4f2e85f\",
343
+ \"2408b868\",
344
+ \"542e79be\",
345
+ \"644c48a0\",
346
+ \"54bb6bd9\",
347
+ \"d4f748e8\",
348
+ \"3489195e\",
349
+ \"a46f0848\"
350
+ ],
351
+ \"rightPointList\": [
352
+ \"e4480a60\",
353
+ \"740bab16\",
354
+ \"e484b91b\",
355
+ \"d4190a2c\",
356
+ \"e4beb85b\",
357
+ \"249d4b30\",
358
+ \"f4fa2b6f\",
359
+ \"4481686d\"
360
+ ],
361
+ \"leftPointList\": [
362
+ \"c434bad6\",
363
+ \"64d7eaad\",
364
+ \"64887be8\",
365
+ \"141e0bd0\",
366
+ \"c48f2bd8\",
367
+ \"748b1925\",
368
+ \"149b5b5f\",
369
+ \"54333ae0\"
370
+ ],
371
+ \"bottomPointList\": [
372
+ \"944b5b4c\",
373
+ \"a485a85b\",
374
+ \"84d4a8d1\",
375
+ \"149499f8\",
376
+ \"945b39b6\",
377
+ \"846a98f5\",
378
+ \"5424bbcf\",
379
+ \"9438d9c9\",
380
+ \"a49e8a0e\"
381
+ ],
382
+ \"pluggedSocketsMap\": {
383
+ \"d4190a2c\": [
384
+ {
385
+ \"elementId\": \"54df2a76\",
386
+ \"plugId\": \"0478e879\"
387
+ }
388
+ ],
389
+ \"748b1925\": [
390
+ {
391
+ \"elementId\": \"e464f89a\",
392
+ \"plugId\": \"d45ff889\"
393
+ }
394
+ ]
395
+ }
396
+ },
397
+ \"849fd955\": {
398
+ \"id\": \"849fd955\",
399
+ \"elementType\": \"Icon\",
400
+ \"sourceUuBmlStencil\": \"uuappcommon\",
401
+ \"uuBmlIconCode\": \"method\",
402
+ \"position\": {
403
+ \"x\": 832,
404
+ \"y\": 704
405
+ },
406
+ \"uuIdentity\": null,
407
+ \"text\": \"Handler\",
408
+ \"searchKey\": \"\",
409
+ \"textHidden\": false,
410
+ \"textWidth\": 128,
411
+ \"importance\": \"normal\",
412
+ \"plural\": false,
413
+ \"state\": {},
414
+ \"label\": {},
415
+ \"topPointList\": [
416
+ \"344f7b88\",
417
+ \"44dd181d\",
418
+ \"440ff972\",
419
+ \"546938da\",
420
+ \"7486d892\",
421
+ \"e4157875\",
422
+ \"a4f91b0a\",
423
+ \"24ae488f\",
424
+ \"d481e9f0\"
425
+ ],
426
+ \"rightPointList\": [
427
+ \"c43b1ad1\",
428
+ \"4459c851\",
429
+ \"e4dae93a\",
430
+ \"e4f7480b\",
431
+ \"84e75929\",
432
+ \"84b4db63\",
433
+ \"442a296e\",
434
+ \"146dfb45\"
435
+ ],
436
+ \"leftPointList\": [
437
+ \"64cb19f2\",
438
+ \"448fea11\",
439
+ \"542ebb0b\",
440
+ \"a4111a0d\",
441
+ \"0428c912\",
442
+ \"24e0e8a9\",
443
+ \"0489cb1a\",
444
+ \"e45ffb8b\"
445
+ ],
446
+ \"bottomPointList\": [
447
+ \"242d4937\",
448
+ \"d487fafb\",
449
+ \"b479b92b\",
450
+ \"64577870\",
451
+ \"f4d34a71\",
452
+ \"e47b5bca\",
453
+ \"c47ba828\",
454
+ \"74d498c3\",
455
+ \"b4098813\"
456
+ ],
457
+ \"pluggedSocketsMap\": {
458
+ \"e4f7480b\": [
459
+ {
460
+ \"elementId\": \"24c73b8d\",
461
+ \"plugId\": \"04df19c6\"
462
+ }
463
+ ],
464
+ \"542ebb0b\": [
465
+ {
466
+ \"elementId\": \"9442fb79\",
467
+ \"plugId\": \"8475190f\"
468
+ }
469
+ ]
470
+ }
471
+ },
472
+ \"1452294c\": {
473
+ \"id\": \"1452294c\",
474
+ \"elementType\": \"Icon\",
475
+ \"sourceUuBmlStencil\": \"uuappmodelkit\",
476
+ \"uuBmlIconCode\": \"uu5Hook\",
477
+ \"position\": {
478
+ \"x\": 832,
479
+ \"y\": 576
480
+ },
481
+ \"uuIdentity\": null,
482
+ \"text\": \"Hook\",
483
+ \"searchKey\": \"\",
484
+ \"textHidden\": false,
485
+ \"textWidth\": 64,
486
+ \"importance\": \"normal\",
487
+ \"plural\": false,
488
+ \"state\": {},
489
+ \"label\": {},
490
+ \"topPointList\": [
491
+ \"34a87bc1\",
492
+ \"343fd9ce\",
493
+ \"b4a76b0b\",
494
+ \"1401eb79\",
495
+ \"b4f248ef\",
496
+ \"242b4bb1\",
497
+ \"b47febd3\",
498
+ \"443118f2\",
499
+ \"b4dfebf2\"
500
+ ],
501
+ \"rightPointList\": [
502
+ \"249d48d8\",
503
+ \"04bc297d\",
504
+ \"34333af7\",
505
+ \"c47c9ac2\",
506
+ \"046328de\",
507
+ \"a43a6ac7\",
508
+ \"a489d94a\",
509
+ \"a4808bde\"
510
+ ],
511
+ \"leftPointList\": [
512
+ \"04b62a3a\",
513
+ \"f4fe5995\",
514
+ \"14b01873\",
515
+ \"f479a9bc\",
516
+ \"b4dee91d\",
517
+ \"84cb3bb8\",
518
+ \"74fe3ab2\",
519
+ \"b4882a32\"
520
+ ],
521
+ \"bottomPointList\": [
522
+ \"148788bf\",
523
+ \"94fd380f\",
524
+ \"e462eb04\",
525
+ \"f4ac1bb6\",
526
+ \"f422eb7f\",
527
+ \"74ffc96d\",
528
+ \"74381a10\",
529
+ \"64e11b2a\",
530
+ \"04ea1b09\"
531
+ ],
532
+ \"pluggedSocketsMap\": {
533
+ \"c47c9ac2\": [
534
+ {
535
+ \"elementId\": \"c43a3b9b\",
536
+ \"plugId\": \"443879e9\"
537
+ }
538
+ ],
539
+ \"f479a9bc\": [
540
+ {
541
+ \"elementId\": \"b4e32b42\",
542
+ \"plugId\": \"f4c999ce\"
543
+ }
544
+ ]
545
+ }
546
+ },
547
+ \"74319b10\": {
548
+ \"id\": \"74319b10\",
549
+ \"elementType\": \"Icon\",
550
+ \"sourceUuBmlStencil\": \"uuappcommon\",
551
+ \"uuBmlIconCode\": \"command\",
552
+ \"position\": {
553
+ \"x\": 960,
554
+ \"y\": 576
555
+ },
556
+ \"uuIdentity\": null,
557
+ \"text\": \"uuCmd\",
558
+ \"searchKey\": \"\",
559
+ \"textHidden\": false,
560
+ \"textWidth\": 64,
561
+ \"importance\": \"highest\",
562
+ \"plural\": false,
563
+ \"state\": {},
564
+ \"label\": {},
565
+ \"topPointList\": [
566
+ \"34b3d8a3\",
567
+ \"140e28c2\",
568
+ \"44d93a9c\",
569
+ \"74c7694f\",
570
+ \"748d8b54\",
571
+ \"14d48aab\",
572
+ \"34ed4ac2\",
573
+ \"9429fb8b\",
574
+ \"44d8d975\"
575
+ ],
576
+ \"rightPointList\": [
577
+ \"8494e88f\",
578
+ \"44d28b25\",
579
+ \"544dfabc\",
580
+ \"c4fea9f7\",
581
+ \"84f41b19\",
582
+ \"94a838fe\",
583
+ \"b4005ab5\",
584
+ \"3480cbbb\"
585
+ ],
586
+ \"leftPointList\": [
587
+ \"242379d4\",
588
+ \"8438ba42\",
589
+ \"2479395d\",
590
+ \"146fc950\",
591
+ \"e49f3a94\",
592
+ \"e428badd\",
593
+ \"34c6d828\",
594
+ \"e4fa6a7c\"
595
+ ],
596
+ \"bottomPointList\": [
597
+ \"8478e9be\",
598
+ \"44771986\",
599
+ \"e4d028e7\",
600
+ \"b4d00848\",
601
+ \"746d4943\",
602
+ \"24fa2994\",
603
+ \"94d1c87b\",
604
+ \"14cfbad7\",
605
+ \"846c2ad4\"
606
+ ],
607
+ \"pluggedSocketsMap\": {
608
+ \"c4fea9f7\": [
609
+ {
610
+ \"elementId\": \"d4dfe86f\",
611
+ \"plugId\": \"b4267a19\"
612
+ }
613
+ ],
614
+ \"146fc950\": [
615
+ {
616
+ \"elementId\": \"c43a3b9b\",
617
+ \"plugId\": \"f4d35b03\"
618
+ }
619
+ ]
620
+ }
621
+ },
622
+ \"4415e81f\": {
623
+ \"id\": \"4415e81f\",
624
+ \"elementType\": \"Connector\",
625
+ \"searchKey\": \"\",
626
+ \"plugMap\": {
627
+ \"746c0923\": {
628
+ \"id\": \"746c0923\",
629
+ \"position\": {
630
+ \"x\": 608,
631
+ \"y\": 320
632
+ },
633
+ \"elementId\": \"54962a04\",
634
+ \"socketId\": \"f4e05bd4\"
635
+ },
636
+ \"d4703b8c\": {
637
+ \"id\": \"d4703b8c\",
638
+ \"position\": {
639
+ \"x\": 608,
640
+ \"y\": 208
641
+ },
642
+ \"elementId\": \"74383907\",
643
+ \"socketId\": \"a495b86c\"
644
+ }
645
+ },
646
+ \"socketMap\": {},
647
+ \"middlePointList\": [],
648
+ \"importance\": \"normal\",
649
+ \"lineStyle\": \"dashed\",
650
+ \"relationType\": \"association1\",
651
+ \"startPoint\": {
652
+ \"pointType\": \"Plug\",
653
+ \"id\": \"746c0923\",
654
+ \"pointer\": \"one\"
655
+ },
656
+ \"endPoint\": {
657
+ \"pointType\": \"Plug\",
658
+ \"id\": \"d4703b8c\",
659
+ \"pointer\": \"association\"
660
+ },
661
+ \"label\": null,
662
+ \"labelPosition\": null
663
+ },
664
+ \"f4a279b1\": {
665
+ \"id\": \"f4a279b1\",
666
+ \"elementType\": \"Connector\",
667
+ \"searchKey\": \"\",
668
+ \"plugMap\": {
669
+ \"d4a27995\": {
670
+ \"id\": \"d4a27995\",
671
+ \"position\": {
672
+ \"x\": 608,
673
+ \"y\": 448
674
+ },
675
+ \"elementId\": \"f42dbbae\",
676
+ \"socketId\": \"44e73942\"
677
+ },
678
+ \"e4b059f0\": {
679
+ \"id\": \"e4b059f0\",
680
+ \"position\": {
681
+ \"x\": 608,
682
+ \"y\": 400
683
+ },
684
+ \"elementId\": \"54962a04\",
685
+ \"socketId\": \"e456cbf0\"
686
+ }
687
+ },
688
+ \"socketMap\": {},
689
+ \"middlePointList\": [],
690
+ \"importance\": \"normal\",
691
+ \"lineStyle\": \"solid\",
692
+ \"relationType\": \"association1\",
693
+ \"startPoint\": {
694
+ \"pointType\": \"Plug\",
695
+ \"id\": \"d4a27995\",
696
+ \"pointer\": \"one\"
697
+ },
698
+ \"endPoint\": {
699
+ \"pointType\": \"Plug\",
700
+ \"id\": \"e4b059f0\",
701
+ \"pointer\": \"association\"
702
+ },
703
+ \"label\": null,
704
+ \"labelPosition\": null
705
+ },
706
+ \"d49cf9fd\": {
707
+ \"id\": \"d49cf9fd\",
708
+ \"elementType\": \"Connector\",
709
+ \"searchKey\": \"\",
710
+ \"plugMap\": {
711
+ \"64ffe930\": {
712
+ \"id\": \"64ffe930\",
713
+ \"position\": {
714
+ \"x\": 704,
715
+ \"y\": 352
716
+ },
717
+ \"elementId\": \"748dc95f\",
718
+ \"socketId\": \"744db9ef\"
719
+ },
720
+ \"9472f8ba\": {
721
+ \"id\": \"9472f8ba\",
722
+ \"position\": {
723
+ \"x\": 640,
724
+ \"y\": 352
725
+ },
726
+ \"elementId\": \"54962a04\",
727
+ \"socketId\": \"34ee7b3c\"
728
+ }
729
+ },
730
+ \"socketMap\": {},
731
+ \"middlePointList\": [],
732
+ \"importance\": \"normal\",
733
+ \"lineStyle\": \"solid\",
734
+ \"relationType\": \"association1\",
735
+ \"startPoint\": {
736
+ \"pointType\": \"Plug\",
737
+ \"id\": \"64ffe930\",
738
+ \"pointer\": \"one\"
739
+ },
740
+ \"endPoint\": {
741
+ \"pointType\": \"Plug\",
742
+ \"id\": \"9472f8ba\",
743
+ \"pointer\": \"association\"
744
+ },
745
+ \"label\": null,
746
+ \"labelPosition\": null
747
+ },
748
+ \"44d23b4a\": {
749
+ \"id\": \"44d23b4a\",
750
+ \"elementType\": \"Annotation\",
751
+ \"searchKey\": \"\",
752
+ \"size\": {
753
+ \"width\": 176,
754
+ \"height\": 72
755
+ },
756
+ \"position\": {
757
+ \"x\": 1064,
758
+ \"y\": 448
759
+ },
760
+ \"text\": \"<uu5string/><div style=\\\"<uu5json />{\\\\\\\"lineHeight\\\\\\\":\\\\\\\"13px\\\\\\\"}\\\">Indicates that the component calls a particular uuCmd in some method.</div>\",
761
+ \"pointerStart\": {
762
+ \"positionOnAnnotation\": [
763
+ \"bottom\",
764
+ \"left\",
765
+ \"top\",
766
+ \"right\"
767
+ ],
768
+ \"pointList\": [
769
+ {
770
+ \"x\": 1064,
771
+ \"y\": 492
772
+ },
773
+ {
774
+ \"x\": 1064,
775
+ \"y\": 476
776
+ }
777
+ ],
778
+ \"orderInPolygon\": 4
779
+ },
780
+ \"pointerEnd\": {
781
+ \"pointType\": \"Plug\",
782
+ \"id\": \"34ba784c\"
783
+ },
784
+ \"plugMap\": {
785
+ \"34ba784c\": {
786
+ \"id\": \"34ba784c\",
787
+ \"position\": {
788
+ \"x\": 1024,
789
+ \"y\": 480
790
+ },
791
+ \"elementId\": \"d493e9a9\",
792
+ \"socketId\": \"14eb1be3\"
793
+ }
794
+ },
795
+ \"anchorPositionMap\": {
796
+ \"topLeft\": \"74e91893\",
797
+ \"topMiddle\": \"b4b1282f\",
798
+ \"topRight\": \"f463ea7f\",
799
+ \"right\": \"84238a9f\",
800
+ \"bottomRight\": \"34b098af\",
801
+ \"bottomMiddle\": \"44858b0b\",
802
+ \"bottomLeft\": \"e4d519e7\",
803
+ \"left\": \"94911ad7\"
804
+ }
805
+ },
806
+ \"24c73b8d\": {
807
+ \"id\": \"24c73b8d\",
808
+ \"elementType\": \"Annotation\",
809
+ \"searchKey\": \"\",
810
+ \"size\": {
811
+ \"width\": 200,
812
+ \"height\": 72
813
+ },
814
+ \"position\": {
815
+ \"x\": 952,
816
+ \"y\": 704
817
+ },
818
+ \"text\": \"<uu5string/><div style=\\\"<uu5json />{\\\\\\\"lineHeight\\\\\\\":\\\\\\\"13px\\\\\\\"}\\\">‍‍‍‍‍‍‍‍‍‍‍Indicates that the component has a particular method as a handler, which can be passed via context or props.</div>\",
819
+ \"pointerStart\": {
820
+ \"positionOnAnnotation\": [
821
+ \"bottom\",
822
+ \"left\",
823
+ \"top\",
824
+ \"right\"
825
+ ],
826
+ \"pointList\": [
827
+ {
828
+ \"x\": 952,
829
+ \"y\": 748
830
+ },
831
+ {
832
+ \"x\": 952,
833
+ \"y\": 732
834
+ }
835
+ ],
836
+ \"orderInPolygon\": 4
837
+ },
838
+ \"pointerEnd\": {
839
+ \"pointType\": \"Plug\",
840
+ \"id\": \"04df19c6\"
841
+ },
842
+ \"plugMap\": {
843
+ \"04df19c6\": {
844
+ \"id\": \"04df19c6\",
845
+ \"position\": {
846
+ \"x\": 896,
847
+ \"y\": 736
848
+ },
849
+ \"elementId\": \"849fd955\",
850
+ \"socketId\": \"e4f7480b\"
851
+ }
852
+ },
853
+ \"anchorPositionMap\": {
854
+ \"left\": \"54074809\",
855
+ \"topLeft\": \"64b17830\",
856
+ \"topMiddle\": \"14c9384f\",
857
+ \"topRight\": \"b48c19f5\",
858
+ \"right\": \"549c4bd4\",
859
+ \"bottomRight\": \"5447ba5a\",
860
+ \"bottomMiddle\": \"c4d0e812\",
861
+ \"bottomLeft\": \"d472783a\"
862
+ }
863
+ },
864
+ \"9442fb79\": {
865
+ \"id\": \"9442fb79\",
866
+ \"elementType\": \"Connector\",
867
+ \"searchKey\": \"\",
868
+ \"plugMap\": {
869
+ \"8475190f\": {
870
+ \"id\": \"8475190f\",
871
+ \"position\": {
872
+ \"x\": 832,
873
+ \"y\": 728
874
+ },
875
+ \"elementId\": \"849fd955\",
876
+ \"socketId\": \"542ebb0b\"
877
+ },
878
+ \"1464a85a\": {
879
+ \"id\": \"1464a85a\",
880
+ \"position\": {
881
+ \"x\": 704,
882
+ \"y\": 616
883
+ },
884
+ \"elementId\": \"845ce813\",
885
+ \"socketId\": \"b44ec826\"
886
+ }
887
+ },
888
+ \"socketMap\": {},
889
+ \"middlePointList\": [],
890
+ \"importance\": \"normal\",
891
+ \"lineStyle\": \"solid\",
892
+ \"relationType\": \"association1\",
893
+ \"startPoint\": {
894
+ \"pointType\": \"Plug\",
895
+ \"id\": \"8475190f\",
896
+ \"pointer\": \"one\"
897
+ },
898
+ \"endPoint\": {
899
+ \"pointType\": \"Plug\",
900
+ \"id\": \"1464a85a\",
901
+ \"pointer\": \"association\"
902
+ },
903
+ \"label\": null,
904
+ \"labelPosition\": null
905
+ },
906
+ \"e464f89a\": {
907
+ \"id\": \"e464f89a\",
908
+ \"elementType\": \"Connector\",
909
+ \"searchKey\": \"\",
910
+ \"plugMap\": {
911
+ \"d45ff889\": {
912
+ \"id\": \"d45ff889\",
913
+ \"position\": {
914
+ \"x\": 832,
915
+ \"y\": 496
916
+ },
917
+ \"elementId\": \"041dab0a\",
918
+ \"socketId\": \"748b1925\"
919
+ },
920
+ \"4421288d\": {
921
+ \"id\": \"4421288d\",
922
+ \"position\": {
923
+ \"x\": 704,
924
+ \"y\": 600
925
+ },
926
+ \"elementId\": \"845ce813\",
927
+ \"socketId\": \"54f779f3\"
928
+ }
929
+ },
930
+ \"socketMap\": {},
931
+ \"middlePointList\": [],
932
+ \"importance\": \"normal\",
933
+ \"lineStyle\": \"solid\",
934
+ \"relationType\": \"association1\",
935
+ \"startPoint\": {
936
+ \"pointType\": \"Plug\",
937
+ \"id\": \"d45ff889\",
938
+ \"pointer\": \"one\"
939
+ },
940
+ \"endPoint\": {
941
+ \"pointType\": \"Plug\",
942
+ \"id\": \"4421288d\",
943
+ \"pointer\": \"association\"
944
+ },
945
+ \"label\": null,
946
+ \"labelPosition\": null
947
+ },
948
+ \"54df2a76\": {
949
+ \"id\": \"54df2a76\",
950
+ \"elementType\": \"Connector\",
951
+ \"searchKey\": \"\",
952
+ \"plugMap\": {
953
+ \"0478e879\": {
954
+ \"id\": \"0478e879\",
955
+ \"position\": {
956
+ \"x\": 896,
957
+ \"y\": 480
958
+ },
959
+ \"elementId\": \"041dab0a\",
960
+ \"socketId\": \"d4190a2c\"
961
+ },
962
+ \"94b67bbd\": {
963
+ \"id\": \"94b67bbd\",
964
+ \"position\": {
965
+ \"x\": 960,
966
+ \"y\": 480
967
+ },
968
+ \"elementId\": \"d493e9a9\",
969
+ \"socketId\": \"749a5932\"
970
+ }
971
+ },
972
+ \"socketMap\": {},
973
+ \"middlePointList\": [],
974
+ \"importance\": \"normal\",
975
+ \"lineStyle\": \"solid\",
976
+ \"relationType\": \"general\",
977
+ \"startPoint\": {
978
+ \"pointType\": \"Plug\",
979
+ \"id\": \"0478e879\",
980
+ \"pointer\": null
981
+ },
982
+ \"endPoint\": {
983
+ \"pointType\": \"Plug\",
984
+ \"id\": \"94b67bbd\",
985
+ \"pointer\": \"general\"
986
+ },
987
+ \"label\": null,
988
+ \"labelPosition\": null
989
+ },
990
+ \"b4e32b42\": {
991
+ \"id\": \"b4e32b42\",
992
+ \"elementType\": \"Connector\",
993
+ \"searchKey\": \"\",
994
+ \"plugMap\": {
995
+ \"f4c999ce\": {
996
+ \"id\": \"f4c999ce\",
997
+ \"position\": {
998
+ \"x\": 832,
999
+ \"y\": 608
1000
+ },
1001
+ \"elementId\": \"1452294c\",
1002
+ \"socketId\": \"f479a9bc\"
1003
+ },
1004
+ \"84abca79\": {
1005
+ \"id\": \"84abca79\",
1006
+ \"position\": {
1007
+ \"x\": 704,
1008
+ \"y\": 608
1009
+ },
1010
+ \"elementId\": \"845ce813\",
1011
+ \"socketId\": \"94341983\"
1012
+ }
1013
+ },
1014
+ \"socketMap\": {},
1015
+ \"middlePointList\": [],
1016
+ \"importance\": \"normal\",
1017
+ \"lineStyle\": \"solid\",
1018
+ \"relationType\": \"association1\",
1019
+ \"startPoint\": {
1020
+ \"pointType\": \"Plug\",
1021
+ \"id\": \"f4c999ce\",
1022
+ \"pointer\": \"one\"
1023
+ },
1024
+ \"endPoint\": {
1025
+ \"pointType\": \"Plug\",
1026
+ \"id\": \"84abca79\",
1027
+ \"pointer\": \"association\"
1028
+ },
1029
+ \"label\": null,
1030
+ \"labelPosition\": null
1031
+ },
1032
+ \"c43a3b9b\": {
1033
+ \"id\": \"c43a3b9b\",
1034
+ \"elementType\": \"Connector\",
1035
+ \"searchKey\": \"\",
1036
+ \"plugMap\": {
1037
+ \"443879e9\": {
1038
+ \"id\": \"443879e9\",
1039
+ \"position\": {
1040
+ \"x\": 896,
1041
+ \"y\": 608
1042
+ },
1043
+ \"elementId\": \"1452294c\",
1044
+ \"socketId\": \"c47c9ac2\"
1045
+ },
1046
+ \"f4d35b03\": {
1047
+ \"id\": \"f4d35b03\",
1048
+ \"position\": {
1049
+ \"x\": 960,
1050
+ \"y\": 608
1051
+ },
1052
+ \"elementId\": \"74319b10\",
1053
+ \"socketId\": \"146fc950\"
1054
+ }
1055
+ },
1056
+ \"socketMap\": {},
1057
+ \"middlePointList\": [],
1058
+ \"importance\": \"normal\",
1059
+ \"lineStyle\": \"solid\",
1060
+ \"relationType\": \"general\",
1061
+ \"startPoint\": {
1062
+ \"pointType\": \"Plug\",
1063
+ \"id\": \"443879e9\",
1064
+ \"pointer\": null
1065
+ },
1066
+ \"endPoint\": {
1067
+ \"pointType\": \"Plug\",
1068
+ \"id\": \"f4d35b03\",
1069
+ \"pointer\": \"general\"
1070
+ },
1071
+ \"label\": null,
1072
+ \"labelPosition\": null
1073
+ },
1074
+ \"d4dfe86f\": {
1075
+ \"id\": \"d4dfe86f\",
1076
+ \"elementType\": \"Annotation\",
1077
+ \"searchKey\": \"\",
1078
+ \"size\": {
1079
+ \"width\": 176,
1080
+ \"height\": 64
1081
+ },
1082
+ \"position\": {
1083
+ \"x\": 1064,
1084
+ \"y\": 576
1085
+ },
1086
+ \"text\": \"<uu5string/><div style=\\\"<uu5json />{\\\\\\\"lineHeight\\\\\\\":\\\\\\\"13px\\\\\\\"}\\\">Indicates that a hook is used to call a particular uuCmd.</div>\",
1087
+ \"pointerStart\": {
1088
+ \"positionOnAnnotation\": [
1089
+ \"bottom\",
1090
+ \"left\",
1091
+ \"top\",
1092
+ \"right\"
1093
+ ],
1094
+ \"pointList\": [
1095
+ {
1096
+ \"x\": 1064,
1097
+ \"y\": 616
1098
+ },
1099
+ {
1100
+ \"x\": 1064,
1101
+ \"y\": 600
1102
+ }
1103
+ ],
1104
+ \"orderInPolygon\": 4
1105
+ },
1106
+ \"pointerEnd\": {
1107
+ \"pointType\": \"Plug\",
1108
+ \"id\": \"b4267a19\"
1109
+ },
1110
+ \"plugMap\": {
1111
+ \"b4267a19\": {
1112
+ \"id\": \"b4267a19\",
1113
+ \"position\": {
1114
+ \"x\": 1024,
1115
+ \"y\": 608
1116
+ },
1117
+ \"elementId\": \"74319b10\",
1118
+ \"socketId\": \"c4fea9f7\"
1119
+ }
1120
+ },
1121
+ \"anchorPositionMap\": {
1122
+ \"topRight\": \"64058996\",
1123
+ \"topLeft\": \"64bdebe6\",
1124
+ \"topMiddle\": \"142c0b5c\",
1125
+ \"right\": \"14042aff\",
1126
+ \"bottomRight\": \"14c55ac1\",
1127
+ \"bottomMiddle\": \"4493cb09\",
1128
+ \"bottomLeft\": \"d4743b2d\",
1129
+ \"left\": \"e4c62901\"
1130
+ }
1131
+ },
1132
+ \"a4c79ab1\": {
1133
+ \"id\": \"a4c79ab1\",
1134
+ \"elementType\": \"Annotation\",
1135
+ \"searchKey\": \"\",
1136
+ \"size\": {
1137
+ \"width\": 192,
1138
+ \"height\": 64
1139
+ },
1140
+ \"position\": {
1141
+ \"x\": 280,
1142
+ \"y\": 520
1143
+ },
1144
+ \"text\": \"<uu5string/><div style=\\\"<uu5json />{\\\\\\\"lineHeight\\\\\\\":\\\\\\\"13px\\\\\\\"}\\\">A selection - only one of the child visual components is rendered.</div>\",
1145
+ \"pointerStart\": {
1146
+ \"positionOnAnnotation\": [
1147
+ \"bottom\",
1148
+ \"left\",
1149
+ \"top\",
1150
+ \"right\"
1151
+ ],
1152
+ \"pointList\": [
1153
+ {
1154
+ \"x\": 472,
1155
+ \"y\": 544
1156
+ },
1157
+ {
1158
+ \"x\": 472,
1159
+ \"y\": 560
1160
+ }
1161
+ ],
1162
+ \"orderInPolygon\": 2
1163
+ },
1164
+ \"pointerEnd\": {
1165
+ \"pointType\": \"Plug\",
1166
+ \"id\": \"34cbeb14\"
1167
+ },
1168
+ \"plugMap\": {
1169
+ \"34cbeb14\": {
1170
+ \"id\": \"34cbeb14\",
1171
+ \"position\": {
1172
+ \"x\": 544,
1173
+ \"y\": 552
1174
+ }
1175
+ }
1176
+ },
1177
+ \"anchorPositionMap\": {
1178
+ \"bottomLeft\": \"54300883\",
1179
+ \"topLeft\": \"743d288f\",
1180
+ \"topMiddle\": \"c4028998\",
1181
+ \"topRight\": \"f4e07b1c\",
1182
+ \"right\": \"f4badb27\",
1183
+ \"bottomRight\": \"a4f678f3\",
1184
+ \"bottomMiddle\": \"24dc1b58\",
1185
+ \"left\": \"9454a935\"
1186
+ }
1187
+ },
1188
+ \"f4c02971\": {
1189
+ \"id\": \"f4c02971\",
1190
+ \"elementType\": \"Annotation\",
1191
+ \"searchKey\": \"\",
1192
+ \"size\": {
1193
+ \"width\": 240,
1194
+ \"height\": 112
1195
+ },
1196
+ \"position\": {
1197
+ \"x\": 312,
1198
+ \"y\": 680
1199
+ },
1200
+ \"text\": \"<uu5string/><div style=\\\"<uu5json />{\\\\\\\"lineHeight\\\\\\\":\\\\\\\"13px\\\\\\\"}\\\">Usage of a common component from another library.<br /><br />The level of importance is \\\"Normal\\\" and the library is defined by the entire namespace of the component e.g. Uu5Tiles.List.</div>\",
1201
+ \"pointerStart\": {
1202
+ \"positionOnAnnotation\": [
1203
+ \"bottom\",
1204
+ \"left\",
1205
+ \"top\",
1206
+ \"right\"
1207
+ ],
1208
+ \"pointList\": [
1209
+ {
1210
+ \"x\": 484,
1211
+ \"y\": 680
1212
+ },
1213
+ {
1214
+ \"x\": 500,
1215
+ \"y\": 680
1216
+ }
1217
+ ],
1218
+ \"orderInPolygon\": 1
1219
+ },
1220
+ \"pointerEnd\": {
1221
+ \"pointType\": \"Plug\",
1222
+ \"id\": \"34797b6f\"
1223
+ },
1224
+ \"plugMap\": {
1225
+ \"34797b6f\": {
1226
+ \"id\": \"34797b6f\",
1227
+ \"position\": {
1228
+ \"x\": 544,
1229
+ \"y\": 656
1230
+ },
1231
+ \"elementId\": \"54f04933\",
1232
+ \"socketId\": \"04968ab2\"
1233
+ }
1234
+ },
1235
+ \"anchorPositionMap\": {
1236
+ \"topLeft\": \"3454e9da\",
1237
+ \"topMiddle\": \"c432b95a\",
1238
+ \"topRight\": \"44795a79\",
1239
+ \"right\": \"d43869c2\",
1240
+ \"bottomRight\": \"24871bf7\",
1241
+ \"bottomMiddle\": \"c4ec5b9c\",
1242
+ \"bottomLeft\": \"94f70b93\",
1243
+ \"left\": \"9496bb2b\"
1244
+ }
1245
+ },
1246
+ \"7403b9fc\": {
1247
+ \"id\": \"7403b9fc\",
1248
+ \"elementType\": \"Annotation\",
1249
+ \"searchKey\": \"\",
1250
+ \"size\": {
1251
+ \"width\": 200,
1252
+ \"height\": 48
1253
+ },
1254
+ \"position\": {
1255
+ \"x\": 672,
1256
+ \"y\": 256
1257
+ },
1258
+ \"text\": \"<uu5string/><div style=\\\"<uu5json />{\\\\\\\"lineHeight\\\\\\\":\\\\\\\"13px\\\\\\\"}\\\">Indicates that a hook is a part of the uu5Route component.</div>\",
1259
+ \"pointerStart\": {
1260
+ \"positionOnAnnotation\": [
1261
+ \"bottom\",
1262
+ \"left\",
1263
+ \"top\",
1264
+ \"right\"
1265
+ ],
1266
+ \"pointList\": [
1267
+ {
1268
+ \"x\": 730,
1269
+ \"y\": 304
1270
+ },
1271
+ {
1272
+ \"x\": 714,
1273
+ \"y\": 304
1274
+ }
1275
+ ],
1276
+ \"orderInPolygon\": 3
1277
+ },
1278
+ \"pointerEnd\": {
1279
+ \"pointType\": \"Plug\",
1280
+ \"id\": \"a46b08da\"
1281
+ },
1282
+ \"plugMap\": {
1283
+ \"a46b08da\": {
1284
+ \"id\": \"a46b08da\",
1285
+ \"position\": {
1286
+ \"x\": 672,
1287
+ \"y\": 352
1288
+ }
1289
+ }
1290
+ },
1291
+ \"anchorPositionMap\": {
1292
+ \"topLeft\": \"64d86ad9\",
1293
+ \"topMiddle\": \"049f8b91\",
1294
+ \"topRight\": \"444b89d8\",
1295
+ \"right\": \"c4f839eb\",
1296
+ \"bottomRight\": \"b4b74b95\",
1297
+ \"bottomMiddle\": \"7417aa71\",
1298
+ \"bottomLeft\": \"64c09ba7\",
1299
+ \"left\": \"e4b9186d\"
1300
+ }
1301
+ },
1302
+ \"b4a2e9cc\": {
1303
+ \"id\": \"b4a2e9cc\",
1304
+ \"elementType\": \"Annotation\",
1305
+ \"searchKey\": \"\",
1306
+ \"size\": {
1307
+ \"width\": 176,
1308
+ \"height\": 72
1309
+ },
1310
+ \"position\": {
1311
+ \"x\": 584,
1312
+ \"y\": 696
1313
+ },
1314
+ \"text\": \"<uu5string/><div style=\\\"<uu5json />{\\\\\\\"lineHeight\\\\\\\":\\\\\\\"13px\\\\\\\"}\\\">High importance indicates that this component has its own documentation in the same uuSubApp or uu5Lib.</div>\",
1315
+ \"pointerStart\": {
1316
+ \"positionOnAnnotation\": [
1317
+ \"bottom\",
1318
+ \"left\",
1319
+ \"top\",
1320
+ \"right\"
1321
+ ],
1322
+ \"pointList\": [
1323
+ {
1324
+ \"x\": 664,
1325
+ \"y\": 696
1326
+ },
1327
+ {
1328
+ \"x\": 680,
1329
+ \"y\": 696
1330
+ }
1331
+ ],
1332
+ \"orderInPolygon\": 1
1333
+ },
1334
+ \"pointerEnd\": {
1335
+ \"pointType\": \"Plug\",
1336
+ \"id\": \"f4a3c889\"
1337
+ },
1338
+ \"plugMap\": {
1339
+ \"f4a3c889\": {
1340
+ \"id\": \"f4a3c889\",
1341
+ \"position\": {
1342
+ \"x\": 672,
1343
+ \"y\": 656
1344
+ },
1345
+ \"elementId\": \"845ce813\",
1346
+ \"socketId\": \"c492ba15\"
1347
+ }
1348
+ },
1349
+ \"anchorPositionMap\": {
1350
+ \"topLeft\": \"f4e00853\",
1351
+ \"topMiddle\": \"d42e6ab9\",
1352
+ \"topRight\": \"44c11b46\",
1353
+ \"right\": \"7479aa9a\",
1354
+ \"bottomRight\": \"a48ec934\",
1355
+ \"bottomMiddle\": \"84475a19\",
1356
+ \"bottomLeft\": \"c41cab44\",
1357
+ \"left\": \"44728b54\"
1358
+ }
1359
+ },
1360
+ \"74bf6ab2\": {
1361
+ \"id\": \"74bf6ab2\",
1362
+ \"elementType\": \"Annotation\",
1363
+ \"searchKey\": \"\",
1364
+ \"size\": {
1365
+ \"width\": 240,
1366
+ \"height\": 64
1367
+ },
1368
+ \"position\": {
1369
+ \"x\": 296,
1370
+ \"y\": 384
1371
+ },
1372
+ \"text\": \"<uu5string/><div style=\\\"<uu5json />{\\\\\\\"lineHeight\\\\\\\":\\\\\\\"13px\\\\\\\"}\\\">Defines that the non-visual component is rendered once in the parent component.</div>\",
1373
+ \"pointerStart\": {
1374
+ \"positionOnAnnotation\": [
1375
+ \"bottom\",
1376
+ \"left\",
1377
+ \"top\",
1378
+ \"right\"
1379
+ ],
1380
+ \"pointList\": [
1381
+ {
1382
+ \"x\": 536,
1383
+ \"y\": 408
1384
+ },
1385
+ {
1386
+ \"x\": 536,
1387
+ \"y\": 424
1388
+ }
1389
+ ],
1390
+ \"orderInPolygon\": 2
1391
+ },
1392
+ \"pointerEnd\": {
1393
+ \"pointType\": \"Plug\",
1394
+ \"id\": \"04adb8bc\"
1395
+ },
1396
+ \"plugMap\": {
1397
+ \"04adb8bc\": {
1398
+ \"id\": \"04adb8bc\",
1399
+ \"position\": {
1400
+ \"x\": 608,
1401
+ \"y\": 424
1402
+ }
1403
+ }
1404
+ },
1405
+ \"anchorPositionMap\": {
1406
+ \"topLeft\": \"94192afb\",
1407
+ \"topMiddle\": \"344d4a21\",
1408
+ \"topRight\": \"240d1a8d\",
1409
+ \"right\": \"744938a3\",
1410
+ \"bottomRight\": \"84f1781a\",
1411
+ \"bottomMiddle\": \"74b07989\",
1412
+ \"bottomLeft\": \"64bbf9dc\",
1413
+ \"left\": \"c4c2bab7\"
1414
+ }
1415
+ },
1416
+ \"741359d4\": {
1417
+ \"id\": \"741359d4\",
1418
+ \"elementType\": \"MultiConnector\",
1419
+ \"plugMap\": {
1420
+ \"94dd5963\": {
1421
+ \"id\": \"94dd5963\",
1422
+ \"position\": {
1423
+ \"x\": 608,
1424
+ \"y\": 528
1425
+ },
1426
+ \"elementId\": \"f42dbbae\",
1427
+ \"socketId\": \"a496790c\"
1428
+ },
1429
+ \"c493ca9f\": {
1430
+ \"id\": \"c493ca9f\",
1431
+ \"position\": {
1432
+ \"x\": 672,
1433
+ \"y\": 576
1434
+ },
1435
+ \"elementId\": \"845ce813\",
1436
+ \"socketId\": \"b4f56b95\"
1437
+ },
1438
+ \"746c2bc5\": {
1439
+ \"id\": \"746c2bc5\",
1440
+ \"position\": {
1441
+ \"x\": 544,
1442
+ \"y\": 576
1443
+ },
1444
+ \"elementId\": \"54f04933\",
1445
+ \"socketId\": \"e47ff83a\"
1446
+ }
1447
+ },
1448
+ \"socketMap\": {},
1449
+ \"anchorMap\": {
1450
+ \"e499c907\": {
1451
+ \"id\": \"e499c907\",
1452
+ \"positionOnMultiConnector\": \"vertical\",
1453
+ \"position\": {
1454
+ \"x\": 608,
1455
+ \"y\": 552
1456
+ }
1457
+ }
1458
+ },
1459
+ \"importance\": \"normal\",
1460
+ \"direction\": \"vertical\",
1461
+ \"bidirectional\": false,
1462
+ \"inverted\": true,
1463
+ \"lineStyle\": \"solid\",
1464
+ \"searchKey\": \"\",
1465
+ \"relationType\": \"association1\",
1466
+ \"startPoint\": {
1467
+ \"pointType\": \"Plug\",
1468
+ \"id\": \"94dd5963\",
1469
+ \"pointer\": \"association\"
1470
+ },
1471
+ \"endPointList\": [
1472
+ {
1473
+ \"pointType\": \"Plug\",
1474
+ \"id\": \"c493ca9f\",
1475
+ \"label\": \"\",
1476
+ \"pointer\": \"one\"
1477
+ },
1478
+ {
1479
+ \"pointType\": \"Plug\",
1480
+ \"id\": \"746c2bc5\",
1481
+ \"label\": \"\",
1482
+ \"pointer\": \"one\"
1483
+ }
1484
+ ]
1485
+ },
1486
+ \"54f04933\": {
1487
+ \"id\": \"54f04933\",
1488
+ \"elementType\": \"Icon\",
1489
+ \"sourceUuBmlStencil\": \"uu5\",
1490
+ \"uuBmlIconCode\": \"visualComponent\",
1491
+ \"position\": {
1492
+ \"x\": 512,
1493
+ \"y\": 576
1494
+ },
1495
+ \"uuIdentity\": null,
1496
+ \"text\": \"Visual component\",
1497
+ \"searchKey\": \"\",
1498
+ \"textHidden\": false,
1499
+ \"textWidth\": 192,
1500
+ \"importance\": \"normal\",
1501
+ \"plural\": false,
1502
+ \"state\": {},
1503
+ \"label\": {},
1504
+ \"topPointList\": [
1505
+ \"84183a23\",
1506
+ \"24b858c1\",
1507
+ \"241eeb31\",
1508
+ \"3404ea13\",
1509
+ \"e47ff83a\",
1510
+ \"9456d9c3\",
1511
+ \"e4919a64\",
1512
+ \"f409da88\",
1513
+ \"4481890a\"
1514
+ ],
1515
+ \"rightPointList\": [
1516
+ \"f412fb7a\",
1517
+ \"b4272afc\",
1518
+ \"d4d4c903\",
1519
+ \"646319cb\",
1520
+ \"c4e1b96c\",
1521
+ \"d4554aba\",
1522
+ \"94243b22\",
1523
+ \"84bf4bb5\"
1524
+ ],
1525
+ \"leftPointList\": [
1526
+ \"e4a1f9b6\",
1527
+ \"94c48afb\",
1528
+ \"448d4888\",
1529
+ \"f42e38e3\",
1530
+ \"24260b53\",
1531
+ \"44c82a1a\",
1532
+ \"04cde963\",
1533
+ \"d4bb3bf8\"
1534
+ ],
1535
+ \"bottomPointList\": [
1536
+ \"c469bb7f\",
1537
+ \"74304800\",
1538
+ \"1481595c\",
1539
+ \"640c4b92\",
1540
+ \"04968ab2\",
1541
+ \"c47e49cf\",
1542
+ \"b4d33b30\",
1543
+ \"74464925\",
1544
+ \"b4e4a929\"
1545
+ ],
1546
+ \"textBackgroundVisible\": false,
1547
+ \"pluggedSocketsMap\": {
1548
+ \"e47ff83a\": [
1549
+ {
1550
+ \"elementId\": \"741359d4\",
1551
+ \"plugId\": \"746c2bc5\"
1552
+ }
1553
+ ],
1554
+ \"04968ab2\": [
1555
+ {
1556
+ \"elementId\": \"f4c02971\",
1557
+ \"plugId\": \"34797b6f\"
1558
+ }
1559
+ ]
1560
+ }
1561
+ },
1562
+ \"845ce813\": {
1563
+ \"id\": \"845ce813\",
1564
+ \"elementType\": \"Icon\",
1565
+ \"sourceUuBmlStencil\": \"uu5\",
1566
+ \"uuBmlIconCode\": \"visualComponent\",
1567
+ \"position\": {
1568
+ \"x\": 640,
1569
+ \"y\": 576
1570
+ },
1571
+ \"uuIdentity\": null,
1572
+ \"text\": \"Visual component\",
1573
+ \"searchKey\": \"\",
1574
+ \"textHidden\": false,
1575
+ \"textWidth\": 192,
1576
+ \"importance\": \"high\",
1577
+ \"plural\": false,
1578
+ \"state\": {},
1579
+ \"label\": {},
1580
+ \"topPointList\": [
1581
+ \"247cab83\",
1582
+ \"84916946\",
1583
+ \"848ac9a1\",
1584
+ \"0429e8e6\",
1585
+ \"b4f56b95\",
1586
+ \"a483d802\",
1587
+ \"d4132bac\",
1588
+ \"d4404b6c\",
1589
+ \"f4508bd2\"
1590
+ ],
1591
+ \"rightPointList\": [
1592
+ \"943c5802\",
1593
+ \"44818b2b\",
1594
+ \"54f779f3\",
1595
+ \"94341983\",
1596
+ \"b44ec826\",
1597
+ \"642f58ac\",
1598
+ \"d4287a59\",
1599
+ \"a45be977\"
1600
+ ],
1601
+ \"leftPointList\": [
1602
+ \"7481baca\",
1603
+ \"b4cceb2f\",
1604
+ \"b41cf8b8\",
1605
+ \"54e66841\",
1606
+ \"248b187d\",
1607
+ \"1435a815\",
1608
+ \"944a3a31\",
1609
+ \"5414cb83\"
1610
+ ],
1611
+ \"bottomPointList\": [
1612
+ \"941219a5\",
1613
+ \"24972930\",
1614
+ \"f4c9a974\",
1615
+ \"747c3b3e\",
1616
+ \"c492ba15\",
1617
+ \"b414ab9f\",
1618
+ \"24ccfb0f\",
1619
+ \"8436e8b9\",
1620
+ \"2470ea0e\"
1621
+ ],
1622
+ \"pluggedSocketsMap\": {
1623
+ \"94341983\": [
1624
+ {
1625
+ \"elementId\": \"b4e32b42\",
1626
+ \"plugId\": \"84abca79\"
1627
+ }
1628
+ ],
1629
+ \"b4f56b95\": [
1630
+ {
1631
+ \"elementId\": \"741359d4\",
1632
+ \"plugId\": \"c493ca9f\"
1633
+ }
1634
+ ],
1635
+ \"54f779f3\": [
1636
+ {
1637
+ \"elementId\": \"e464f89a\",
1638
+ \"plugId\": \"4421288d\"
1639
+ }
1640
+ ],
1641
+ \"b44ec826\": [
1642
+ {
1643
+ \"elementId\": \"9442fb79\",
1644
+ \"plugId\": \"1464a85a\"
1645
+ }
1646
+ ],
1647
+ \"c492ba15\": [
1648
+ {
1649
+ \"elementId\": \"b4a2e9cc\",
1650
+ \"plugId\": \"f4a3c889\"
1651
+ }
1652
+ ]
1653
+ }
1654
+ },
1655
+ \"f42dbbae\": {
1656
+ \"id\": \"f42dbbae\",
1657
+ \"elementType\": \"Icon\",
1658
+ \"sourceUuBmlStencil\": \"uu5\",
1659
+ \"uuBmlIconCode\": \"nonVisualComponent\",
1660
+ \"position\": {
1661
+ \"x\": 576,
1662
+ \"y\": 448
1663
+ },
1664
+ \"uuIdentity\": null,
1665
+ \"text\": \"Non-visual component\",
1666
+ \"searchKey\": \"\",
1667
+ \"textHidden\": false,
1668
+ \"textWidth\": 192,
1669
+ \"importance\": \"high\",
1670
+ \"plural\": false,
1671
+ \"state\": {},
1672
+ \"label\": {},
1673
+ \"topPointList\": [
1674
+ \"34bcbb0c\",
1675
+ \"7459cb3f\",
1676
+ \"c44d1812\",
1677
+ \"942289e9\",
1678
+ \"44e73942\",
1679
+ \"04298bd1\",
1680
+ \"14874893\",
1681
+ \"a4ec0a5e\",
1682
+ \"94fc7b46\"
1683
+ ],
1684
+ \"rightPointList\": [
1685
+ \"649939cf\",
1686
+ \"a4d3ebf5\",
1687
+ \"94458976\",
1688
+ \"d4f8da89\",
1689
+ \"34cfa98e\",
1690
+ \"b413d999\",
1691
+ \"94a2cbe6\",
1692
+ \"34ab6ad8\"
1693
+ ],
1694
+ \"leftPointList\": [
1695
+ \"7445596b\",
1696
+ \"24011862\",
1697
+ \"b431c8f0\",
1698
+ \"c46fd915\",
1699
+ \"a456688b\",
1700
+ \"742dc8c8\",
1701
+ \"a4bd8830\",
1702
+ \"c45bea6e\"
1703
+ ],
1704
+ \"bottomPointList\": [
1705
+ \"f446ab26\",
1706
+ \"6411996f\",
1707
+ \"54dc0ae4\",
1708
+ \"14e11b2d\",
1709
+ \"a496790c\",
1710
+ \"c418db1a\",
1711
+ \"d4d98a20\",
1712
+ \"a429e8b2\",
1713
+ \"64291a12\"
1714
+ ],
1715
+ \"textBackgroundVisible\": false,
1716
+ \"pluggedSocketsMap\": {
1717
+ \"44e73942\": [
1718
+ {
1719
+ \"elementId\": \"f4a279b1\",
1720
+ \"plugId\": \"d4a27995\"
1721
+ }
1722
+ ],
1723
+ \"a496790c\": [
1724
+ {
1725
+ \"elementId\": \"741359d4\",
1726
+ \"plugId\": \"94dd5963\"
1727
+ }
1728
+ ]
1729
+ }
1730
+ },
1731
+ \"54962a04\": {
1732
+ \"id\": \"54962a04\",
1733
+ \"elementType\": \"Icon\",
1734
+ \"sourceUuBmlStencil\": \"uu5\",
1735
+ \"uuBmlIconCode\": \"route\",
1736
+ \"position\": {
1737
+ \"x\": 576,
1738
+ \"y\": 320
1739
+ },
1740
+ \"uuIdentity\": null,
1741
+ \"text\": \"route\",
1742
+ \"searchKey\": \"\",
1743
+ \"textHidden\": false,
1744
+ \"textWidth\": 192,
1745
+ \"importance\": \"objective\",
1746
+ \"plural\": false,
1747
+ \"state\": {},
1748
+ \"label\": {},
1749
+ \"topPointList\": [
1750
+ \"b40d8901\",
1751
+ \"44936b20\",
1752
+ \"84713bd4\",
1753
+ \"64ae98de\",
1754
+ \"f4e05bd4\",
1755
+ \"d4818872\",
1756
+ \"942f1b2d\",
1757
+ \"a4649a1b\",
1758
+ \"e4d14849\"
1759
+ ],
1760
+ \"rightPointList\": [
1761
+ \"44274a63\",
1762
+ \"54eeca10\",
1763
+ \"7468a8ca\",
1764
+ \"34ee7b3c\",
1765
+ \"64f16b6c\",
1766
+ \"64502b17\",
1767
+ \"44fa0b4b\",
1768
+ \"0432594d\"
1769
+ ],
1770
+ \"leftPointList\": [
1771
+ \"046c2ba2\",
1772
+ \"745d89bb\",
1773
+ \"144f290b\",
1774
+ \"a4511bfd\",
1775
+ \"f4e4aa66\",
1776
+ \"d432ca4d\",
1777
+ \"24136b28\",
1778
+ \"44f6da8f\"
1779
+ ],
1780
+ \"bottomPointList\": [
1781
+ \"8473e871\",
1782
+ \"147ec8fa\",
1783
+ \"8451baa6\",
1784
+ \"2449e873\",
1785
+ \"e456cbf0\",
1786
+ \"64d1fa9b\",
1787
+ \"5497eb68\",
1788
+ \"f42cfb35\",
1789
+ \"1411e8cb\"
1790
+ ],
1791
+ \"pluggedSocketsMap\": {
1792
+ \"f4e05bd4\": [
1793
+ {
1794
+ \"elementId\": \"4415e81f\",
1795
+ \"plugId\": \"746c0923\"
1796
+ }
1797
+ ],
1798
+ \"34ee7b3c\": [
1799
+ {
1800
+ \"elementId\": \"d49cf9fd\",
1801
+ \"plugId\": \"9472f8ba\"
1802
+ }
1803
+ ],
1804
+ \"e456cbf0\": [
1805
+ {
1806
+ \"elementId\": \"f4a279b1\",
1807
+ \"plugId\": \"e4b059f0\"
1808
+ }
1809
+ ]
1810
+ }
1811
+ }
1812
+ },
1813
+ \"elementZOrderList\": [
1814
+ \"4415e81f\",
1815
+ \"f4a279b1\",
1816
+ \"748dc95f\",
1817
+ \"d493e9a9\",
1818
+ \"d49cf9fd\",
1819
+ \"44d23b4a\",
1820
+ \"041dab0a\",
1821
+ \"849fd955\",
1822
+ \"24c73b8d\",
1823
+ \"1452294c\",
1824
+ \"9442fb79\",
1825
+ \"e464f89a\",
1826
+ \"54df2a76\",
1827
+ \"b4e32b42\",
1828
+ \"c43a3b9b\",
1829
+ \"74319b10\",
1830
+ \"d4dfe86f\",
1831
+ \"a4c79ab1\",
1832
+ \"f4c02971\",
1833
+ \"7403b9fc\",
1834
+ \"b4a2e9cc\",
1835
+ \"74bf6ab2\",
1836
+ \"741359d4\",
1837
+ \"74383907\",
1838
+ \"64218953\",
1839
+ \"54f04933\",
1840
+ \"845ce813\",
1841
+ \"f42dbbae\",
1842
+ \"54962a04\"
1843
+ ],
1844
+ \"underConstruction\": false
1845
+ }"/>
1846
+
1847
+ i need add support for these lines intto the /bml-diagram skill generator mainly to the @uu_app_aicodingg01-prompts/skills/bml-diagram/lib/bml-generator.js
1848
+
1849
+ --------------------------------------------------------------------------------
1850
+ [ASSISTANT] 11:04:38 PM
1851
+ --------------------------------------------------------------------------------
1852
+ I'll analyze the diagram to understand the line types and then update the bml-generator.js library. Let me first read the current library to see what's already supported.
1853
+
1854
+ --------------------------------------------------------------------------------
1855
+ [ASSISTANT] 11:04:38 PM
1856
+ --------------------------------------------------------------------------------
1857
+ Now I understand the diagram. Let me analyze the different line types used:
1858
+
1859
+ **Line Types Found in the Diagram:**
1860
+
1861
+ | Connector ID | lineStyle | relationType | startPoint.pointer | endPoint.pointer | Usage |
1862
+ |-------------|-----------|--------------|-------------------|-----------------|-------|
1863
+ | `4415e81f` | `dashed` | `association1` | `"one"` | `"association"` | Skip relationship (components between) |
1864
+ | `f4a279b1` | `solid` | `association1` | `"one"` | `"association"` | Parent-child containment |
1865
+ | `54df2a76` | `solid` | `general` | `null` | `"general"` | Method calls command |
1866
+ | `c43a3b9b` | `solid` | `general` | `null` | `"general"` | Hook calls command |
1867
+ | `741359d4` (Multi) | `solid` | `association1` | `"association"` | `"one"` | Selection (one-of-many) |
1868
+
1869
+ The current library only supports `relationType: 'general'` with fixed pointers. I need to add support for:
1870
+ 1. **Association** (`association1`) - with `"one"` and `"association"` pointers
1871
+ 2. **Configurable pointers** on both ends
1872
+ 3. **Helper methods** for common patterns
1873
+
1874
+ Let me update the library:
1875
+
1876
+ --------------------------------------------------------------------------------
1877
+ [ASSISTANT] 11:04:38 PM
1878
+ --------------------------------------------------------------------------------
1879
+ Now let me update the `createConnector` function to support these new options:
1880
+
1881
+ --------------------------------------------------------------------------------
1882
+ [ASSISTANT] 11:04:38 PM
1883
+ --------------------------------------------------------------------------------
1884
+ Now let me update the `createMultiConnector` function to support the same preset options:
1885
+
1886
+ --------------------------------------------------------------------------------
1887
+ [ASSISTANT] 11:04:38 PM
1888
+ --------------------------------------------------------------------------------
1889
+ Now I need to update the part of `createMultiConnector` that uses the pointer values:
1890
+
1891
+ --------------------------------------------------------------------------------
1892
+ [ASSISTANT] 11:04:38 PM
1893
+ --------------------------------------------------------------------------------
1894
+ Now let me update the exports to include the new constants:
1895
+
1896
+ --------------------------------------------------------------------------------
1897
+ [ASSISTANT] 11:04:38 PM
1898
+ --------------------------------------------------------------------------------
1899
+ Now let me add convenient helper methods to the `DiagramBuilder` class for common connection patterns:
1900
+
1901
+ --------------------------------------------------------------------------------
1902
+ [ASSISTANT] 11:04:38 PM
1903
+ --------------------------------------------------------------------------------
1904
+ Now let me also update the `connectMulti` methods to support presets:
1905
+
1906
+ --------------------------------------------------------------------------------
1907
+ [ASSISTANT] 11:04:38 PM
1908
+ --------------------------------------------------------------------------------
1909
+ Let me verify the changes and check for any linter errors:
1910
+
1911
+ --------------------------------------------------------------------------------
1912
+ [ASSISTANT] 11:04:38 PM
1913
+ --------------------------------------------------------------------------------
1914
+ Now let me update the SKILL.md file to document these new line types:
1915
+
1916
+ --------------------------------------------------------------------------------
1917
+ [ASSISTANT] 11:04:38 PM
1918
+ --------------------------------------------------------------------------------
1919
+ Now let me update the Line Styles and Relation Types sections with comprehensive documentation:
1920
+
1921
+ --------------------------------------------------------------------------------
1922
+ [ASSISTANT] 11:04:38 PM
1923
+ --------------------------------------------------------------------------------
1924
+ Now let me find and update the DiagramBuilder Methods section:
1925
+
1926
+ --------------------------------------------------------------------------------
1927
+ [ASSISTANT] 11:04:38 PM
1928
+ --------------------------------------------------------------------------------
1929
+ Let me verify the library works correctly with a quick test:
1930
+
1931
+ --------------------------------------------------------------------------------
1932
+ [ASSISTANT] 11:04:38 PM
1933
+ --------------------------------------------------------------------------------
1934
+ All tests pass. Let me also test the MultiConnector with the new presets:
1935
+
1936
+ --------------------------------------------------------------------------------
1937
+ [ASSISTANT] 11:04:38 PM
1938
+ --------------------------------------------------------------------------------
1939
+ All tests pass. Here's a summary of the changes I made to add support for different line types:
1940
+
1941
+ ## Summary of Changes
1942
+
1943
+ ### 1. Added New Constants (`bml-generator.js`)
1944
+
1945
+ **`RELATION_TYPES`** - Defines relationship type values:
1946
+ - `general`, `association1`, `associationN`, `aggregation1`, `aggregationN`, `composition1`, `compositionN`, `inheritance`
1947
+
1948
+ **`POINTER_TYPES`** - Defines what appears at connector endpoints:
1949
+ - `none` (null), `general`, `one`, `association`, `aggregation`, `composition`, `inheritance`
1950
+
1951
+ **`LINE_STYLES`** - Defines line appearance:
1952
+ - `solid`, `dashed`, `dotted`
1953
+
1954
+ **`CONNECTION_PRESETS`** - Predefined combinations for common patterns:
1955
+ | Preset | Description |
1956
+ |--------|-------------|
1957
+ | `arrow` | Standard arrow (→) - default |
1958
+ | `association` | Parent-child with multiplicity (◇—1) |
1959
+ | `skip` | Dashed association for indirect relationships |
1960
+ | `aggregation` | Has-a relationship (hollow diamond) |
1961
+ | `composition` | Owns relationship (filled diamond) |
1962
+ | `inheritance` | Extends/implements (triangle) |
1963
+ | `optional` | Dashed arrow for optional paths |
1964
+ | `reference` | Dotted line for weak references |
1965
+ | `line` | Plain line without arrows |
1966
+
1967
+ ### 2. Updated `createConnector()` Function
1968
+
1969
+ Now accepts:
1970
+ - `preset` - Named preset from `CONNECTION_PRESETS`
1971
+ - `startPointer` / `endPointer` - Custom pointer types for each end
1972
+ - Individual `lineStyle`, `relationType` overrides
1973
+
1974
+ ### 3. Updated `createMultiConnector()` Function
1975
+
1976
+ Same preset support as `createConnector()`
1977
+
1978
+ ### 4. Added Helper Methods to `DiagramBuilder`
1979
+
1980
+ - `connectAssociation(from, to)` - Association style (◇—1)
1981
+ - `connectSkip(from, to)` - Dashed association (indirect)
1982
+ - `connectAggregation(from, to)` - Aggregation (◇)
1983
+ - `connectComposition(from, to)` - Composition (◆)
1984
+ - `connectInheritance(from, to)` - Inheritance (△)
1985
+ - `connectLine(from, to)` - Plain line (no arrows)
1986
+ - `connectMultiAssociation(from, toArray)` - Multi-connector with association
1987
+
1988
+ ### Usage Examples
1989
+
1990
+ ```javascript
1991
+ // Using presets
1992
+ builder.connect(child, parent, { preset: 'association' });
1993
+ builder.connect(child, parent, { preset: 'skip' }); // dashed
1994
+
1995
+ // Using helper methods
1996
+ builder.connectAssociation(child, parent);
1997
+ builder.connectSkip(child, parent);
1998
+
1999
+ // Custom configuration
2000
+ builder.connect(fromIcon, toIcon, {
2001
+ relationType: 'association1',
2002
+ lineStyle: 'dashed',
2003
+ startPointer: 'one',
2004
+ endPointer: 'association'
2005
+ });
2006
+ ```
2007
+
2008
+ --------------------------------------------------------------------------------
2009
+ [USER] 11:04:38 PM
2010
+ --------------------------------------------------------------------------------
2011
+ apart from that i want to add support for the bubble blocks
2012
+
2013
+ --------------------------------------------------------------------------------
2014
+ [ASSISTANT] 11:04:38 PM
2015
+ --------------------------------------------------------------------------------
2016
+ Let me first understand what bubble blocks are by checking the stencils and looking for examples in the codebase.
2017
+
2018
+ --------------------------------------------------------------------------------
2019
+ [ASSISTANT] 11:04:38 PM
2020
+ --------------------------------------------------------------------------------
2021
+ Let me check the uubml-diagram-patterns.mdc file to understand what bubble blocks are:
2022
+
2023
+ --------------------------------------------------------------------------------
2024
+ [ASSISTANT] 11:04:38 PM
2025
+ --------------------------------------------------------------------------------
2026
+ I don't see "bubble blocks" in the current stencils or patterns documentation. Could you clarify what you mean by "bubble blocks"? Are you referring to:
2027
+
2028
+ 1. **A specific visual style of Block** - like rounded corners or bubble-shaped containers?
2029
+ 2. **A different element type** - perhaps something like speech bubbles or callout bubbles?
2030
+ 3. **The Annotation element** - which has pointers and can look like speech bubbles?
2031
+
2032
+ If you have an example diagram or screenshot showing the bubble blocks you want to support, that would help me understand exactly what to implement.
2033
+
2034
+ Alternatively, if you can describe:
2035
+ - What they look like visually
2036
+ - How they differ from regular blocks
2037
+ - What properties they have (rounded corners, colors, etc.)
2038
+
2039
+ I can then add the appropriate support to the `bml-generator.js` library.
2040
+
2041
+ --------------------------------------------------------------------------------
2042
+ [USER] 11:04:38 PM
2043
+ --------------------------------------------------------------------------------
2044
+ },
2045
+ \"74bf6ab2\": {
2046
+ \"id\": \"74bf6ab2\",
2047
+ \"elementType\": \"Annotation\",
2048
+ \"searchKey\": \"\",
2049
+ \"size\": {
2050
+ \"width\": 240,
2051
+ \"height\": 64
2052
+ },
2053
+ \"position\": {
2054
+ \"x\": 296,
2055
+ \"y\": 384
2056
+ },
2057
+ \"text\": \"<uu5string/><div style=\\\"<uu5json />{\\\\\\\"lineHeight\\\\\\\":\\\\\\\"13px\\\\\\\"}\\\">Defines that the non-visual component is rendered once in the parent component.</div>\",
2058
+ \"pointerStart\": {
2059
+ \"positionOnAnnotation\": [
2060
+ \"bottom\",
2061
+ \"left\",
2062
+ \"top\",
2063
+ \"right\"
2064
+ ],
2065
+ \"pointList\": [
2066
+ {
2067
+ \"x\": 536,
2068
+ \"y\": 408
2069
+ },
2070
+ {
2071
+ \"x\": 536,
2072
+ \"y\": 424
2073
+ }
2074
+ ],
2075
+ \"orderInPolygon\": 2
2076
+ },
2077
+ \"pointerEnd\": {
2078
+ \"pointType\": \"Plug\",
2079
+ \"id\": \"04adb8bc\"
2080
+ },
2081
+ \"plugMap\": {
2082
+ \"04adb8bc\": {
2083
+ \"id\": \"04adb8bc\",
2084
+ \"position\": {
2085
+ \"x\": 608,
2086
+ \"y\": 424
2087
+ }
2088
+ }
2089
+ },
2090
+ \"anchorPositionMap\": {
2091
+ \"topLeft\": \"94192afb\",
2092
+ \"topMiddle\": \"344d4a21\",
2093
+ \"topRight\": \"240d1a8d\",
2094
+ \"right\": \"744938a3\",
2095
+ \"bottomRight\": \"84f1781a\",
2096
+ \"bottomMiddle\": \"74b07989\",
2097
+ \"bottomLeft\": \"64bbf9dc\",
2098
+ \"left\": \"c4c2bab7\"
2099
+ }
2100
+ },
2101
+
2102
+ its this annotation bubble..
2103
+
2104
+ --------------------------------------------------------------------------------
2105
+ [ASSISTANT] 11:04:38 PM
2106
+ --------------------------------------------------------------------------------
2107
+ Now I understand! You're referring to the **Annotation** element - a speech bubble/callout with a pointer that connects to another element. Let me add support for creating these in the library.
2108
+
2109
+ --------------------------------------------------------------------------------
2110
+ [ASSISTANT] 11:04:38 PM
2111
+ --------------------------------------------------------------------------------
2112
+ Now I'll add the `createAnnotation` function after `createUu5Component`:
2113
+
2114
+ --------------------------------------------------------------------------------
2115
+ [ASSISTANT] 11:04:38 PM
2116
+ --------------------------------------------------------------------------------
2117
+ Now let me add the `addAnnotation` method to the `DiagramBuilder` class:
2118
+
2119
+ --------------------------------------------------------------------------------
2120
+ [ASSISTANT] 11:04:38 PM
2121
+ --------------------------------------------------------------------------------
2122
+ Now let me update the exports to include the new annotation functions:
2123
+
2124
+ --------------------------------------------------------------------------------
2125
+ [ASSISTANT] 11:04:38 PM
2126
+ --------------------------------------------------------------------------------
2127
+ Let me test the annotation creation:
2128
+
2129
+ --------------------------------------------------------------------------------
2130
+ [ASSISTANT] 11:04:38 PM
2131
+ --------------------------------------------------------------------------------
2132
+ Now let me check for linter errors and update the SKILL.md documentation:
2133
+
2134
+ --------------------------------------------------------------------------------
2135
+ [ASSISTANT] 11:04:38 PM
2136
+ --------------------------------------------------------------------------------
2137
+ Now let me update the SKILL.md to document the annotation feature:
2138
+
2139
+ --------------------------------------------------------------------------------
2140
+ [ASSISTANT] 11:04:38 PM
2141
+ --------------------------------------------------------------------------------
2142
+ Let me add the Annotation documentation after the Uu5Component section:
2143
+
2144
+ --------------------------------------------------------------------------------
2145
+ [ASSISTANT] 11:04:38 PM
2146
+ --------------------------------------------------------------------------------
2147
+ Now let me update the DiagramBuilder Methods table to include the annotation methods:
2148
+
2149
+ --------------------------------------------------------------------------------
2150
+ [ASSISTANT] 11:04:38 PM
2151
+ --------------------------------------------------------------------------------
2152
+ Let me run a final comprehensive test to ensure everything works together:
2153
+
2154
+ --------------------------------------------------------------------------------
2155
+ [ASSISTANT] 11:04:38 PM
2156
+ --------------------------------------------------------------------------------
2157
+ The error is from my test trying to use a fake icon. Let me fix the test:
2158
+
2159
+ --------------------------------------------------------------------------------
2160
+ [ASSISTANT] 11:04:38 PM
2161
+ --------------------------------------------------------------------------------
2162
+ All tests pass. Here's a summary of everything that was added:
2163
+
2164
+ ## Summary of Changes
2165
+
2166
+ ### 1. Line Types and Connection Presets (from first request)
2167
+
2168
+ **New Constants:**
2169
+ - `RELATION_TYPES` - `general`, `association1`, `associationN`, `aggregation1`, etc.
2170
+ - `POINTER_TYPES` - `none`, `general`, `one`, `association`, etc.
2171
+ - `LINE_STYLES` - `solid`, `dashed`, `dotted`
2172
+ - `CONNECTION_PRESETS` - Named presets for common patterns
2173
+
2174
+ **New Helper Methods on DiagramBuilder:**
2175
+ - `connectAssociation(from, to)` - Parent-child with multiplicity (◇—1)
2176
+ - `connectSkip(from, to)` - Dashed association (indirect relationships)
2177
+ - `connectAggregation(from, to)` - Has-a (hollow diamond)
2178
+ - `connectComposition(from, to)` - Owns (filled diamond)
2179
+ - `connectInheritance(from, to)` - Extends (triangle)
2180
+ - `connectLine(from, to)` - Plain line (no arrows)
2181
+ - `connectMultiAssociation(from, toArray)` - Multi with association style
2182
+
2183
+ ### 2. Annotation Bubbles (from second request)
2184
+
2185
+ **New Functions:**
2186
+ - `createAnnotation(config)` - Creates speech bubble with pointer
2187
+ - `createFloatingAnnotation(config)` - Creates annotation without pointer
2188
+
2189
+ **New DiagramBuilder Methods:**
2190
+ - `addAnnotation(config)` - Add annotation pointing to an icon
2191
+ - `addFloatingAnnotation(config)` - Add floating note
2192
+
2193
+ **Usage:**
2194
+ ```javascript
2195
+ // Annotation pointing to an icon
2196
+ builder.addAnnotation({
2197
+ position: { x: 700, y: 448 },
2198
+ size: { width: 176, height: 72 },
2199
+ text: '<uu5string/><div>Explanation text</div>',
2200
+ targetIcon: commandIcon,
2201
+ pointerSide: 'left' // 'top', 'right', 'bottom', 'left'
2202
+ });
2203
+
2204
+ // Floating annotation (no pointer)
2205
+ builder.addFloatingAnnotation({
2206
+ position: { x: 100, y: 100 },
2207
+ size: { width: 200, height: 48 },
2208
+ text: '<uu5string/><div>Title or note</div>'
2209
+ });
2210
+ ```
2211
+
2212
+ Both the `lib/bml-generator.js` and `SKILL.md` have been updated with full documentation.
2213
+
2214
+ --------------------------------------------------------------------------------
2215
+ [USER] 11:04:38 PM
2216
+ --------------------------------------------------------------------------------
2217
+ add support and enforcing also to the @uu_app_aicodingg01-prompts/cursor/.cursor/rules/uubml-diagram-patterns.mdc
2218
+
2219
+ --------------------------------------------------------------------------------
2220
+ [ASSISTANT] 11:04:38 PM
2221
+ --------------------------------------------------------------------------------
2222
+ Now I'll update the uubml-diagram-patterns.mdc file to include the new line types, connection presets, and annotation features. Let me add these in the appropriate sections.
2223
+
2224
+ --------------------------------------------------------------------------------
2225
+ [ASSISTANT] 11:04:38 PM
2226
+ --------------------------------------------------------------------------------
2227
+ Let me read the exact content to match the formatting:
2228
+
2229
+ --------------------------------------------------------------------------------
2230
+ [ASSISTANT] 11:04:38 PM
2231
+ --------------------------------------------------------------------------------
2232
+ Now let me update section 5.4 to add the missing relation types:
2233
+
2234
+ --------------------------------------------------------------------------------
2235
+ [ASSISTANT] 11:04:38 PM
2236
+ --------------------------------------------------------------------------------
2237
+ Now let me update the Table of Contents:
2238
+
2239
+ --------------------------------------------------------------------------------
2240
+ [ASSISTANT] 11:04:38 PM
2241
+ --------------------------------------------------------------------------------
2242
+ Now let me update the reference template to use the new helper methods:
2243
+
2244
+ --------------------------------------------------------------------------------
2245
+ [ASSISTANT] 11:04:38 PM
2246
+ --------------------------------------------------------------------------------
2247
+ Now let me update the Best Practices section to include the new helper methods:
2248
+
2249
+ --------------------------------------------------------------------------------
2250
+ [ASSISTANT] 11:04:38 PM
2251
+ --------------------------------------------------------------------------------
2252
+ Now let me update the Troubleshooting section:
2253
+
2254
+ --------------------------------------------------------------------------------
2255
+ [ASSISTANT] 11:04:38 PM
2256
+ --------------------------------------------------------------------------------
2257
+ Let me verify the updates by reading the relevant sections:
2258
+
2259
+ --------------------------------------------------------------------------------
2260
+ [ASSISTANT] 11:04:38 PM
2261
+ --------------------------------------------------------------------------------
2262
+ The updates to `uubml-diagram-patterns.mdc` are complete. The linter warnings are pre-existing markdown style issues (table formatting, blank lines) that were already in the file - I've avoided changing them per your rules about minimal changes.
2263
+
2264
+ Here's a summary of what was added:
2265
+
2266
+ **Section 5.4 - Relation Types:**
2267
+ - Added `aggregation1`, `composition1`, `compositionN`, `inheritance` relation types
2268
+ - Added **Pointer Types** reference table with all pointer values (`null`, `general`, `one`, `association`, `aggregation`, `composition`, `inheritance`)
2269
+
2270
+ **Section 5.6 - Connection Presets (NEW):**
2271
+ - Documents all helper methods: `connect()`, `connectAssociation()`, `connectSkip()`, `connectAggregation()`, `connectComposition()`, `connectInheritance()`, `connectLine()`
2272
+ - Includes usage examples with `preset` parameter and helper methods
2273
+ - **MANDATORY** rules for component diagrams
2274
+
2275
+ **Section 5.7 - Annotation Bubbles (NEW):**
2276
+ - Documents `addAnnotation()` and `addFloatingAnnotation()` usage
2277
+ - Pointer side values table (`top`, `right`, `bottom`, `left`)
2278
+ - Annotation rules for text formatting and placement
2279
+
2280
+ **Reference Template (Section 10.1):**
2281
+ - Updated to use new helper methods (`connectSkip()`, `connectAssociation()`, `connectMultiAssociation()`)
2282
+ - Added annotation example
2283
+
2284
+ **Best Practices:**
2285
+ - Added recommendations for using connection helper methods and annotations
2286
+
2287
+ **Troubleshooting:**
2288
+ - Added new entries for line style, diamond pointer, annotation pointer, and floating annotation issues
2289
+
2290
+ ================================================================================
2291
+ End of conversation
2292
+ ================================================================================