@next-bricks/ai-portal 0.52.0 → 0.54.0

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 (44) hide show
  1. package/dist/bricks.json +43 -35
  2. package/dist/chunks/6201.610c66e3.js +2 -0
  3. package/dist/chunks/6201.610c66e3.js.map +1 -0
  4. package/dist/chunks/7713.278cfb8b.js +2 -0
  5. package/dist/chunks/7713.278cfb8b.js.map +1 -0
  6. package/dist/chunks/chat-box.279647b5.js +2 -0
  7. package/dist/chunks/chat-box.279647b5.js.map +1 -0
  8. package/dist/chunks/flow-tabs.222a11ea.js +3 -0
  9. package/dist/chunks/flow-tabs.222a11ea.js.map +1 -0
  10. package/dist/chunks/main.72d51c8f.js +2 -0
  11. package/dist/chunks/{main.4cb00675.js.map → main.72d51c8f.js.map} +1 -1
  12. package/dist/chunks/set-chat-command.367b9c88.js +2 -0
  13. package/dist/chunks/set-chat-command.367b9c88.js.map +1 -0
  14. package/dist/chunks/stage-flow.1ece0479.js +2 -0
  15. package/dist/chunks/stage-flow.1ece0479.js.map +1 -0
  16. package/dist/examples.json +19 -16
  17. package/dist/images/60cd488d.svg +6 -0
  18. package/dist/images/ecaecc18.svg +6 -0
  19. package/dist/index.6e1371ec.js +2 -0
  20. package/dist/index.6e1371ec.js.map +1 -0
  21. package/dist/manifest.json +384 -298
  22. package/dist/types.json +1507 -736
  23. package/dist-types/bootstrap.d.ts +2 -0
  24. package/dist-types/chat-box/index.d.ts +3 -1
  25. package/dist-types/data-providers/set-chat-command.d.ts +7 -0
  26. package/dist-types/data-providers/set-chat-command.spec.d.ts +1 -0
  27. package/dist-types/shared/interfaces.d.ts +9 -0
  28. package/dist-types/stage-flow/i18n.d.ts +23 -0
  29. package/dist-types/stage-flow/index.d.ts +39 -0
  30. package/dist-types/stage-flow/index.spec.d.ts +1 -0
  31. package/docs/stage-flow.md +32 -0
  32. package/package.json +2 -2
  33. package/dist/chunks/6201.58eeb93e.js +0 -2
  34. package/dist/chunks/6201.58eeb93e.js.map +0 -1
  35. package/dist/chunks/943.7073ef6f.js +0 -2
  36. package/dist/chunks/943.7073ef6f.js.map +0 -1
  37. package/dist/chunks/chat-box.59ab1b62.js +0 -2
  38. package/dist/chunks/chat-box.59ab1b62.js.map +0 -1
  39. package/dist/chunks/flow-tabs.ba72493e.js +0 -3
  40. package/dist/chunks/flow-tabs.ba72493e.js.map +0 -1
  41. package/dist/chunks/main.4cb00675.js +0 -2
  42. package/dist/index.fede9e49.js +0 -2
  43. package/dist/index.fede9e49.js.map +0 -1
  44. /package/dist/chunks/{flow-tabs.ba72493e.js.LICENSE.txt → flow-tabs.222a11ea.js.LICENSE.txt} +0 -0
@@ -3,6 +3,150 @@
3
3
  "package": "@next-bricks/ai-portal",
4
4
  "name": "ai-portal",
5
5
  "bricks": [
6
+ {
7
+ "name": "ai-portal.home-container",
8
+ "properties": [
9
+ {
10
+ "name": "sticky",
11
+ "type": "boolean"
12
+ }
13
+ ],
14
+ "events": [],
15
+ "slots": [],
16
+ "methods": [],
17
+ "parts": [],
18
+ "description": "构件 `ai-portal.home-container`"
19
+ },
20
+ {
21
+ "name": "ai-portal.chat-box",
22
+ "properties": [
23
+ {
24
+ "name": "disabled",
25
+ "type": "boolean"
26
+ },
27
+ {
28
+ "name": "placeholder",
29
+ "type": "string"
30
+ },
31
+ {
32
+ "name": "autoFocus",
33
+ "type": "boolean"
34
+ },
35
+ {
36
+ "name": "aiEmployees",
37
+ "attribute": false,
38
+ "type": "AIEmployee[]"
39
+ },
40
+ {
41
+ "name": "commands",
42
+ "attribute": false,
43
+ "type": "Command[]"
44
+ }
45
+ ],
46
+ "events": [
47
+ {
48
+ "name": "message.submit",
49
+ "detail": {
50
+ "type": "string"
51
+ }
52
+ },
53
+ {
54
+ "name": "ai-employee.mention",
55
+ "detail": {
56
+ "type": "AIEmployee | null"
57
+ }
58
+ },
59
+ {
60
+ "name": "command.select",
61
+ "detail": {
62
+ "type": "CommandPayload | null"
63
+ }
64
+ }
65
+ ],
66
+ "slots": [],
67
+ "methods": [
68
+ {
69
+ "name": "setValue",
70
+ "params": [
71
+ {
72
+ "name": "value",
73
+ "type": "string"
74
+ }
75
+ ]
76
+ },
77
+ {
78
+ "name": "getValue",
79
+ "params": []
80
+ },
81
+ {
82
+ "name": "focusOnInput",
83
+ "params": []
84
+ }
85
+ ],
86
+ "parts": [],
87
+ "description": "构件 `ai-portal.chat-box`"
88
+ },
89
+ {
90
+ "name": "ai-portal.stat-with-mini-chart",
91
+ "properties": [
92
+ {
93
+ "name": "label",
94
+ "type": "string"
95
+ },
96
+ {
97
+ "name": "value",
98
+ "type": "string"
99
+ },
100
+ {
101
+ "name": "size",
102
+ "description": "",
103
+ "default": "\"medium\"",
104
+ "type": "\"medium\" | \"small\""
105
+ },
106
+ {
107
+ "name": "lineColor",
108
+ "description": "",
109
+ "default": "\"var(--color-brand)\"",
110
+ "type": "string"
111
+ },
112
+ {
113
+ "name": "showArea",
114
+ "type": "boolean"
115
+ },
116
+ {
117
+ "name": "min",
118
+ "description": "Specify the minimum value of the y-axis.\nIf not specified, the minimum value will be calculated from the data.",
119
+ "type": "number"
120
+ },
121
+ {
122
+ "name": "max",
123
+ "description": "Specify the maximum value of the y-axis.\nIf not specified, the maximum value will be calculated from the data.",
124
+ "type": "number"
125
+ },
126
+ {
127
+ "name": "xField",
128
+ "description": "",
129
+ "default": "\"0\"",
130
+ "type": "string"
131
+ },
132
+ {
133
+ "name": "yField",
134
+ "description": "",
135
+ "default": "\"1\"",
136
+ "type": "string"
137
+ },
138
+ {
139
+ "name": "data",
140
+ "attribute": false,
141
+ "type": "Record<string, number>[]"
142
+ }
143
+ ],
144
+ "events": [],
145
+ "slots": [],
146
+ "methods": [],
147
+ "parts": [],
148
+ "description": "构件 `ai-portal.stat-with-mini-chart`"
149
+ },
6
150
  {
7
151
  "name": "ai-portal.cruise-canvas",
8
152
  "properties": [
@@ -152,150 +296,6 @@
152
296
  "parts": [],
153
297
  "description": "构件 `ai-portal.cruise-canvas`"
154
298
  },
155
- {
156
- "name": "ai-portal.chat-box",
157
- "properties": [
158
- {
159
- "name": "disabled",
160
- "type": "boolean"
161
- },
162
- {
163
- "name": "placeholder",
164
- "type": "string"
165
- },
166
- {
167
- "name": "autoFocus",
168
- "type": "boolean"
169
- },
170
- {
171
- "name": "aiEmployees",
172
- "attribute": false,
173
- "type": "AIEmployee[]"
174
- },
175
- {
176
- "name": "commands",
177
- "attribute": false,
178
- "type": "Command[]"
179
- }
180
- ],
181
- "events": [
182
- {
183
- "name": "message.submit",
184
- "detail": {
185
- "type": "string"
186
- }
187
- },
188
- {
189
- "name": "ai-employee.mention",
190
- "detail": {
191
- "type": "AIEmployee | null"
192
- }
193
- },
194
- {
195
- "name": "command.select",
196
- "detail": {
197
- "type": "string | null"
198
- }
199
- }
200
- ],
201
- "slots": [],
202
- "methods": [
203
- {
204
- "name": "setValue",
205
- "params": [
206
- {
207
- "name": "value",
208
- "type": "string"
209
- }
210
- ]
211
- },
212
- {
213
- "name": "getValue",
214
- "params": []
215
- },
216
- {
217
- "name": "focusOnInput",
218
- "params": []
219
- }
220
- ],
221
- "parts": [],
222
- "description": "构件 `ai-portal.chat-box`"
223
- },
224
- {
225
- "name": "ai-portal.home-container",
226
- "properties": [
227
- {
228
- "name": "sticky",
229
- "type": "boolean"
230
- }
231
- ],
232
- "events": [],
233
- "slots": [],
234
- "methods": [],
235
- "parts": [],
236
- "description": "构件 `ai-portal.home-container`"
237
- },
238
- {
239
- "name": "ai-portal.stat-with-mini-chart",
240
- "properties": [
241
- {
242
- "name": "label",
243
- "type": "string"
244
- },
245
- {
246
- "name": "value",
247
- "type": "string"
248
- },
249
- {
250
- "name": "size",
251
- "description": "",
252
- "default": "\"medium\"",
253
- "type": "\"medium\" | \"small\""
254
- },
255
- {
256
- "name": "lineColor",
257
- "description": "",
258
- "default": "\"var(--color-brand)\"",
259
- "type": "string"
260
- },
261
- {
262
- "name": "showArea",
263
- "type": "boolean"
264
- },
265
- {
266
- "name": "min",
267
- "description": "Specify the minimum value of the y-axis.\nIf not specified, the minimum value will be calculated from the data.",
268
- "type": "number"
269
- },
270
- {
271
- "name": "max",
272
- "description": "Specify the maximum value of the y-axis.\nIf not specified, the maximum value will be calculated from the data.",
273
- "type": "number"
274
- },
275
- {
276
- "name": "xField",
277
- "description": "",
278
- "default": "\"0\"",
279
- "type": "string"
280
- },
281
- {
282
- "name": "yField",
283
- "description": "",
284
- "default": "\"1\"",
285
- "type": "string"
286
- },
287
- {
288
- "name": "data",
289
- "attribute": false,
290
- "type": "Record<string, number>[]"
291
- }
292
- ],
293
- "events": [],
294
- "slots": [],
295
- "methods": [],
296
- "parts": [],
297
- "description": "构件 `ai-portal.stat-with-mini-chart`"
298
- },
299
299
  {
300
300
  "name": "ai-portal.elevo-sidebar",
301
301
  "properties": [
@@ -501,6 +501,36 @@
501
501
  "parts": [],
502
502
  "description": "构件 `ai-portal.mcp-tools`"
503
503
  },
504
+ {
505
+ "name": "ai-portal.ai-employees",
506
+ "properties": [
507
+ {
508
+ "name": "list",
509
+ "attribute": false,
510
+ "type": "Employee[]"
511
+ },
512
+ {
513
+ "name": "industries",
514
+ "attribute": false,
515
+ "type": "string[]"
516
+ },
517
+ {
518
+ "name": "urlTemplate",
519
+ "type": "string"
520
+ },
521
+ {
522
+ "name": "withContainer",
523
+ "description": "",
524
+ "deprecated": true,
525
+ "default": "true"
526
+ }
527
+ ],
528
+ "events": [],
529
+ "slots": [],
530
+ "methods": [],
531
+ "parts": [],
532
+ "description": "构件 `ai-portal.ai-employees`"
533
+ },
504
534
  {
505
535
  "name": "ai-portal.chat-stream",
506
536
  "properties": [
@@ -638,36 +668,6 @@
638
668
  "parts": [],
639
669
  "description": "构件 `ai-portal.chat-stream`"
640
670
  },
641
- {
642
- "name": "ai-portal.ai-employees",
643
- "properties": [
644
- {
645
- "name": "list",
646
- "attribute": false,
647
- "type": "Employee[]"
648
- },
649
- {
650
- "name": "industries",
651
- "attribute": false,
652
- "type": "string[]"
653
- },
654
- {
655
- "name": "urlTemplate",
656
- "type": "string"
657
- },
658
- {
659
- "name": "withContainer",
660
- "description": "",
661
- "deprecated": true,
662
- "default": "true"
663
- }
664
- ],
665
- "events": [],
666
- "slots": [],
667
- "methods": [],
668
- "parts": [],
669
- "description": "构件 `ai-portal.ai-employees`"
670
- },
671
671
  {
672
672
  "name": "ai-portal.ai-agents",
673
673
  "properties": [
@@ -730,49 +730,94 @@
730
730
  "description": "内容"
731
731
  },
732
732
  {
733
- "name": "toolbar",
734
- "description": "工具栏"
733
+ "name": "toolbar",
734
+ "description": "工具栏"
735
+ }
736
+ ],
737
+ "methods": [],
738
+ "parts": [],
739
+ "description": "构件 `ai-portal.page-container`"
740
+ },
741
+ {
742
+ "name": "ai-portal.tab-list",
743
+ "properties": [
744
+ {
745
+ "name": "tabs",
746
+ "attribute": false,
747
+ "type": "Tab[]"
748
+ },
749
+ {
750
+ "name": "activeTab",
751
+ "attribute": false,
752
+ "type": "string"
753
+ }
754
+ ],
755
+ "events": [
756
+ {
757
+ "name": "tab.click",
758
+ "detail": {
759
+ "type": "Tab"
760
+ }
761
+ }
762
+ ],
763
+ "slots": [],
764
+ "methods": [],
765
+ "parts": [
766
+ {
767
+ "name": "tabs",
768
+ "description": "The tab list container"
769
+ },
770
+ {
771
+ "name": "tab",
772
+ "description": "The individual tab"
773
+ }
774
+ ],
775
+ "description": "构件 `ai-portal.tab-list`"
776
+ },
777
+ {
778
+ "name": "ai-portal.preview-container",
779
+ "properties": [
780
+ {
781
+ "name": "source",
782
+ "attribute": false,
783
+ "type": "string"
784
+ },
785
+ {
786
+ "name": "url",
787
+ "type": "string"
735
788
  }
736
789
  ],
790
+ "events": [],
791
+ "slots": [],
737
792
  "methods": [],
738
793
  "parts": [],
739
- "description": "构件 `ai-portal.page-container`"
794
+ "description": "构件 `ai-portal.preview-container`"
740
795
  },
741
796
  {
742
- "name": "ai-portal.tab-list",
797
+ "name": "ai-portal.action-buttons",
743
798
  "properties": [
744
799
  {
745
- "name": "tabs",
800
+ "name": "items",
746
801
  "attribute": false,
747
- "type": "Tab[]"
802
+ "type": "ActionItem[]"
748
803
  },
749
804
  {
750
- "name": "activeTab",
751
- "attribute": false,
752
- "type": "string"
805
+ "name": "activeKey",
806
+ "type": "string | null"
753
807
  }
754
808
  ],
755
809
  "events": [
756
810
  {
757
- "name": "tab.click",
811
+ "name": "change",
758
812
  "detail": {
759
- "type": "Tab"
813
+ "type": "ActionItem | null"
760
814
  }
761
815
  }
762
816
  ],
763
817
  "slots": [],
764
818
  "methods": [],
765
- "parts": [
766
- {
767
- "name": "tabs",
768
- "description": "The tab list container"
769
- },
770
- {
771
- "name": "tab",
772
- "description": "The individual tab"
773
- }
774
- ],
775
- "description": "构件 `ai-portal.tab-list`"
819
+ "parts": [],
820
+ "description": "构件 `ai-portal.action-buttons`"
776
821
  },
777
822
  {
778
823
  "name": "ai-portal.dropdown-select",
@@ -831,51 +876,6 @@
831
876
  "parts": [],
832
877
  "description": "构件 `ai-portal.dropdown-select`"
833
878
  },
834
- {
835
- "name": "ai-portal.preview-container",
836
- "properties": [
837
- {
838
- "name": "source",
839
- "attribute": false,
840
- "type": "string"
841
- },
842
- {
843
- "name": "url",
844
- "type": "string"
845
- }
846
- ],
847
- "events": [],
848
- "slots": [],
849
- "methods": [],
850
- "parts": [],
851
- "description": "构件 `ai-portal.preview-container`"
852
- },
853
- {
854
- "name": "ai-portal.action-buttons",
855
- "properties": [
856
- {
857
- "name": "items",
858
- "attribute": false,
859
- "type": "ActionItem[]"
860
- },
861
- {
862
- "name": "activeKey",
863
- "type": "string | null"
864
- }
865
- ],
866
- "events": [
867
- {
868
- "name": "change",
869
- "detail": {
870
- "type": "ActionItem | null"
871
- }
872
- }
873
- ],
874
- "slots": [],
875
- "methods": [],
876
- "parts": [],
877
- "description": "构件 `ai-portal.action-buttons`"
878
- },
879
879
  {
880
880
  "name": "ai-portal.goal-card-list",
881
881
  "properties": [
@@ -939,48 +939,6 @@
939
939
  "parts": [],
940
940
  "description": "构件 `ai-portal.goal-card-list`"
941
941
  },
942
- {
943
- "name": "ai-portal.project-conversations",
944
- "properties": [
945
- {
946
- "name": "list",
947
- "attribute": false,
948
- "type": "Conversation[]"
949
- },
950
- {
951
- "name": "urlTemplate",
952
- "type": "string"
953
- },
954
- {
955
- "name": "actions",
956
- "attribute": false,
957
- "type": "ActionType[]"
958
- },
959
- {
960
- "name": "goals",
961
- "attribute": false,
962
- "type": "Goal[]"
963
- }
964
- ],
965
- "events": [
966
- {
967
- "name": "goal.click",
968
- "detail": {
969
- "type": "Conversation"
970
- }
971
- },
972
- {
973
- "name": "action.click",
974
- "detail": {
975
- "type": "ActionClickDetail"
976
- }
977
- }
978
- ],
979
- "slots": [],
980
- "methods": [],
981
- "parts": [],
982
- "description": "构件 `ai-portal.project-conversations`"
983
- },
984
942
  {
985
943
  "name": "ai-portal.project-knowledges",
986
944
  "properties": [
@@ -1112,22 +1070,46 @@
1112
1070
  "description": "构件 `ai-portal.show-case`"
1113
1071
  },
1114
1072
  {
1115
- "name": "ai-portal.blank-state",
1073
+ "name": "ai-portal.project-conversations",
1116
1074
  "properties": [
1117
1075
  {
1118
- "name": "illustration",
1119
- "type": "BlankStateIllustration"
1076
+ "name": "list",
1077
+ "attribute": false,
1078
+ "type": "Conversation[]"
1120
1079
  },
1121
1080
  {
1122
- "name": "description",
1081
+ "name": "urlTemplate",
1123
1082
  "type": "string"
1083
+ },
1084
+ {
1085
+ "name": "actions",
1086
+ "attribute": false,
1087
+ "type": "ActionType[]"
1088
+ },
1089
+ {
1090
+ "name": "goals",
1091
+ "attribute": false,
1092
+ "type": "Goal[]"
1093
+ }
1094
+ ],
1095
+ "events": [
1096
+ {
1097
+ "name": "goal.click",
1098
+ "detail": {
1099
+ "type": "Conversation"
1100
+ }
1101
+ },
1102
+ {
1103
+ "name": "action.click",
1104
+ "detail": {
1105
+ "type": "ActionClickDetail"
1106
+ }
1124
1107
  }
1125
1108
  ],
1126
- "events": [],
1127
1109
  "slots": [],
1128
1110
  "methods": [],
1129
1111
  "parts": [],
1130
- "description": "构件 `ai-portal.blank-state`"
1112
+ "description": "构件 `ai-portal.project-conversations`"
1131
1113
  },
1132
1114
  {
1133
1115
  "name": "ai-portal.sticky-container",
@@ -1163,6 +1145,51 @@
1163
1145
  "parts": [],
1164
1146
  "description": "构件 `ai-portal.sticky-container`"
1165
1147
  },
1148
+ {
1149
+ "name": "ai-portal.blank-state",
1150
+ "properties": [
1151
+ {
1152
+ "name": "illustration",
1153
+ "type": "BlankStateIllustration"
1154
+ },
1155
+ {
1156
+ "name": "description",
1157
+ "type": "string"
1158
+ }
1159
+ ],
1160
+ "events": [],
1161
+ "slots": [],
1162
+ "methods": [],
1163
+ "parts": [],
1164
+ "description": "构件 `ai-portal.blank-state`"
1165
+ },
1166
+ {
1167
+ "name": "ai-portal.flow-tabs",
1168
+ "properties": [
1169
+ {
1170
+ "name": "tabs",
1171
+ "attribute": false,
1172
+ "type": "Tab[]"
1173
+ },
1174
+ {
1175
+ "name": "activeTab",
1176
+ "attribute": false,
1177
+ "type": "string"
1178
+ }
1179
+ ],
1180
+ "events": [
1181
+ {
1182
+ "name": "tab.click",
1183
+ "detail": {
1184
+ "type": "Tab"
1185
+ }
1186
+ }
1187
+ ],
1188
+ "slots": [],
1189
+ "methods": [],
1190
+ "parts": [],
1191
+ "description": "构件 `ai-portal.flow-tabs`"
1192
+ },
1166
1193
  {
1167
1194
  "name": "ai-portal.elevo-card",
1168
1195
  "properties": [
@@ -1195,31 +1222,87 @@
1195
1222
  "description": "构件 `ai-portal.elevo-card`"
1196
1223
  },
1197
1224
  {
1198
- "name": "ai-portal.flow-tabs",
1225
+ "name": "ai-portal.stage-flow",
1199
1226
  "properties": [
1200
1227
  {
1201
- "name": "tabs",
1228
+ "name": "spec",
1202
1229
  "attribute": false,
1203
- "type": "Tab[]"
1230
+ "type": "Stage[]"
1204
1231
  },
1205
1232
  {
1206
- "name": "activeTab",
1233
+ "name": "aiEmployees",
1207
1234
  "attribute": false,
1208
- "type": "string"
1235
+ "type": "AIEmployee[]"
1209
1236
  }
1210
1237
  ],
1211
1238
  "events": [
1212
1239
  {
1213
- "name": "tab.click",
1240
+ "name": "change",
1214
1241
  "detail": {
1215
- "type": "Tab"
1242
+ "type": "Stage[]"
1243
+ }
1244
+ },
1245
+ {
1246
+ "name": "add.activity",
1247
+ "detail": {
1248
+ "type": "{ stage: Stage }"
1249
+ }
1250
+ },
1251
+ {
1252
+ "name": "edit.activity",
1253
+ "detail": {
1254
+ "type": "EditActivityDetail"
1216
1255
  }
1217
1256
  }
1218
1257
  ],
1219
1258
  "slots": [],
1220
- "methods": [],
1259
+ "methods": [
1260
+ {
1261
+ "name": "addActivity",
1262
+ "params": [
1263
+ {
1264
+ "name": "stage",
1265
+ "type": "Stage"
1266
+ },
1267
+ {
1268
+ "name": "activity",
1269
+ "type": "FlowActivity"
1270
+ }
1271
+ ]
1272
+ },
1273
+ {
1274
+ "name": "editActivity",
1275
+ "params": [
1276
+ {
1277
+ "name": "stage",
1278
+ "type": "Stage"
1279
+ },
1280
+ {
1281
+ "name": "activity",
1282
+ "type": "FlowActivity"
1283
+ },
1284
+ {
1285
+ "name": "activityIndex",
1286
+ "type": "number"
1287
+ }
1288
+ ]
1289
+ },
1290
+ {
1291
+ "name": "deleteActivity",
1292
+ "params": [
1293
+ {
1294
+ "name": "stage",
1295
+ "type": "Stage"
1296
+ },
1297
+ {
1298
+ "name": "activityIndex",
1299
+ "type": "number"
1300
+ }
1301
+ ]
1302
+ }
1303
+ ],
1221
1304
  "parts": [],
1222
- "description": "构件 `ai-portal.flow-tabs`"
1305
+ "description": "构件 `ai-portal.stage-flow`"
1223
1306
  }
1224
1307
  ],
1225
1308
  "providers": [
@@ -1234,6 +1317,9 @@
1234
1317
  },
1235
1318
  {
1236
1319
  "name": "ai-portal.clear-request-store"
1320
+ },
1321
+ {
1322
+ "name": "ai-portal.set-chat-command"
1237
1323
  }
1238
1324
  ]
1239
1325
  }