Fix #7189 - simplify array grid example
[roojs1] / docs / symbols / Roo.util.Observable.json
1 {
2   "name" : "Roo.util.Observable",
3   "augments" : [],
4   "childClasses" : {
5     "Roo.bootstrap.nav.Item" : [
6       "Roo.bootstrap.nav.SidebarItem"
7     ],
8     "Roo.ContentPanel" : [
9       "Roo.GridPanel",
10       "Roo.NestedLayoutPanel",
11       "Roo.TreePanel"
12     ],
13     "Roo.LayoutRegion" : [
14       "Roo.SplitLayoutRegion",
15       "Roo.bootstrap.layout.Split"
16     ],
17     "Roo.form.Layout" : [
18       "Roo.form.Column",
19       "Roo.form.FieldSet",
20       "Roo.form.Row"
21     ],
22     "Roo.bootstrap.Column" : [
23       "Roo.bootstrap.TabGroup"
24     ],
25     "Roo.grid.EditorGrid" : [
26       "Roo.grid.PropertyGrid"
27     ],
28     "Roo.LayoutManager" : [
29       "Roo.BorderLayout"
30     ],
31     "Roo.dd.DropTarget" : [
32       "Roo.dd.DropZone"
33     ],
34     "Roo.bootstrap.Element" : [
35       "Roo.bootstrap.CardFooter",
36       "Roo.bootstrap.CardHeader",
37       "Roo.bootstrap.CardImageTop",
38       "Roo.bootstrap.DropTarget"
39     ],
40     "Roo.form.TriggerField" : [
41       "Roo.form.ComboBox",
42       "Roo.form.DateField",
43       "Roo.form.MonthField",
44       "Roo.form.Select"
45     ],
46     "Roo.form.ComboBox" : [
47       "Roo.form.ComboCheck",
48       "Roo.form.ComboNested"
49     ],
50     "Roo.View" : [
51       "Roo.JsonView"
52     ],
53     "Roo.data.DataProxy" : [
54       "Roo.data.HttpProxy",
55       "Roo.data.MemoryProxy"
56     ],
57     "Roo.menu.Menu" : [
58       "Roo.menu.ColorMenu",
59       "Roo.menu.DateMenu"
60     ],
61     "Roo.bootstrap.form.TriggerField" : [
62       "Roo.bootstrap.form.ComboBox",
63       "Roo.bootstrap.form.PhoneInput"
64     ],
65     "Roo.dd.DragDrop" : [
66       "Roo.dd.DD",
67       "Roo.dd.DDTarget"
68     ],
69     "Roo.tree.TreeNode" : [
70       "Roo.tree.AsyncTreeNode"
71     ],
72     "Roo.Button" : [
73       "Roo.SplitButton",
74       "Roo.Toolbar.Button"
75     ],
76     "Roo.util.Observable" : [
77       "Roo.BasicDialog",
78       "Roo.BasicLayoutRegion",
79       "Roo.Button",
80       "Roo.Component",
81       "Roo.ContentPanel",
82       "Roo.Document",
83       "Roo.LayoutManager",
84       "Roo.Resizable",
85       "Roo.SplitBar",
86       "Roo.TabPanel",
87       "Roo.TabPanelItem",
88       "Roo.UpdateManager",
89       "Roo.View",
90       "Roo.XComponent",
91       "Roo.bootstrap.SplitBar",
92       "Roo.bootstrap.layout.Basic",
93       "Roo.bootstrap.panel.Content",
94       "Roo.bootstrap.panel.TabItem",
95       "Roo.bootstrap.panel.Tabs",
96       "Roo.data.Connection",
97       "Roo.data.DataProxy",
98       "Roo.data.Node",
99       "Roo.data.Store",
100       "Roo.data.Tree",
101       "Roo.dd.DragDrop",
102       "Roo.form.BasicForm",
103       "Roo.grid.AbstractGridView",
104       "Roo.grid.AbstractSelectionModel",
105       "Roo.grid.ColumnModel",
106       "Roo.grid.Grid",
107       "Roo.grid.GridView",
108       "Roo.menu.Menu",
109       "Roo.tree.DefaultSelectionModel",
110       "Roo.tree.MultiSelectionModel",
111       "Roo.tree.TreeLoader",
112       "Roo.util.ClickRepeater",
113       "Roo.util.MixedCollection"
114     ],
115     "Roo.bootstrap.layout.Manager" : [
116       "Roo.bootstrap.layout.Border"
117     ],
118     "Roo.Component" : [
119       "Roo.BoxComponent",
120       "Roo.CalendarPanel",
121       "Roo.ColorPalette",
122       "Roo.DatePicker",
123       "Roo.Editor",
124       "Roo.HtmlEditorCore",
125       "Roo.bootstrap.Component",
126       "Roo.form.Layout",
127       "Roo.menu.BaseItem"
128     ],
129     "Roo.BorderLayout" : [
130       "Roo.ReaderLayout"
131     ],
132     "Roo.menu.Item" : [
133       "Roo.menu.CheckItem"
134     ],
135     "Roo.bootstrap.form.TextArea" : [
136       "Roo.bootstrap.form.HtmlEditor",
137       "Roo.bootstrap.form.Markdown"
138     ],
139     "Roo.form.Field" : [
140       "Roo.form.Checkbox",
141       "Roo.form.DayPicker",
142       "Roo.form.DisplayField",
143       "Roo.form.GridField",
144       "Roo.form.HtmlEditor",
145       "Roo.form.Signature",
146       "Roo.form.TextField"
147     ],
148     "Roo.form.BasicForm" : [
149       "Roo.form.Form"
150     ],
151     "Roo.SplitButton" : [
152       "Roo.Toolbar.SplitButton"
153     ],
154     "Roo.bootstrap.panel.Content" : [
155       "Roo.bootstrap.panel.Grid",
156       "Roo.bootstrap.panel.Nest"
157     ],
158     "Roo.BasicDialog" : [
159       "Roo.LayoutDialog"
160     ],
161     "Roo.menu.BaseItem" : [
162       "Roo.menu.Adapter",
163       "Roo.menu.Item",
164       "Roo.menu.Separator",
165       "Roo.menu.TextItem"
166     ],
167     "Roo.BoxComponent" : [
168       "Roo.form.ComboBoxArray.Item",
169       "Roo.form.Field",
170       "Roo.form.TextItem"
171     ],
172     "Roo.data.Store" : [
173       "Roo.data.JsonStore",
174       "Roo.data.SimpleStore"
175     ],
176     "Roo.dd.DDProxy" : [
177       "Roo.dd.DragSource",
178       "Roo.grid.SplitDragZone"
179     ],
180     "Roo.menu.Adapter" : [
181       "Roo.menu.ColorItem",
182       "Roo.menu.DateItem"
183     ],
184     "Roo.tree.TreePanel" : [
185       "Roo.tree.ColumnTree"
186     ],
187     "Roo.bootstrap.layout.Basic" : [
188       "Roo.bootstrap.layout.Region"
189     ],
190     "Roo.form.TextField" : [
191       "Roo.form.ComboBoxArray",
192       "Roo.form.Hidden",
193       "Roo.form.NumberField",
194       "Roo.form.TextArea",
195       "Roo.form.TriggerField"
196     ],
197     "Roo.form.Checkbox" : [
198       "Roo.form.Radio"
199     ],
200     "Roo.bootstrap.form.Input" : [
201       "Roo.bootstrap.form.CheckBox",
202       "Roo.bootstrap.form.DateField",
203       "Roo.bootstrap.form.MonthField",
204       "Roo.bootstrap.form.NumberField",
205       "Roo.bootstrap.form.RadioSet",
206       "Roo.bootstrap.form.SecurePass",
207       "Roo.bootstrap.form.TextArea",
208       "Roo.bootstrap.form.TimeField",
209       "Roo.bootstrap.form.TriggerField"
210     ],
211     "Roo.grid.AbstractSelectionModel" : [
212       "Roo.grid.CellSelectionModel",
213       "Roo.grid.RowSelectionModel"
214     ],
215     "Roo.bootstrap.form.ComboBox" : [
216       "Roo.bootstrap.form.MoneyField"
217     ],
218     "Roo.dd.DDTarget" : [
219       "Roo.dd.DropTarget"
220     ],
221     "Roo.bootstrap.Button" : [
222       "Roo.bootstrap.ButtonUploader",
223       "Roo.bootstrap.form.CardUploader"
224     ],
225     "Roo.bootstrap.Component" : [
226       "Roo.bootstrap.Alert",
227       "Roo.bootstrap.BezierSignature",
228       "Roo.bootstrap.Body",
229       "Roo.bootstrap.Brick",
230       "Roo.bootstrap.Button",
231       "Roo.bootstrap.ButtonGroup",
232       "Roo.bootstrap.Calendar",
233       "Roo.bootstrap.Card",
234       "Roo.bootstrap.Column",
235       "Roo.bootstrap.Container",
236       "Roo.bootstrap.DocumentManager",
237       "Roo.bootstrap.DocumentSlider",
238       "Roo.bootstrap.DocumentViewer",
239       "Roo.bootstrap.Element",
240       "Roo.bootstrap.Graph",
241       "Roo.bootstrap.Header",
242       "Roo.bootstrap.Img",
243       "Roo.bootstrap.LayoutMasonry",
244       "Roo.bootstrap.LayoutMasonryAuto",
245       "Roo.bootstrap.Link",
246       "Roo.bootstrap.LocationPicker",
247       "Roo.bootstrap.MasonryBrick",
248       "Roo.bootstrap.MessageBar",
249       "Roo.bootstrap.Modal",
250       "Roo.bootstrap.Pagination",
251       "Roo.bootstrap.PaginationItem",
252       "Roo.bootstrap.Popover",
253       "Roo.bootstrap.Progress",
254       "Roo.bootstrap.ProgressBar",
255       "Roo.bootstrap.Row",
256       "Roo.bootstrap.Slider",
257       "Roo.bootstrap.TabPanel",
258       "Roo.bootstrap.Table",
259       "Roo.bootstrap.TableBody",
260       "Roo.bootstrap.TableCell",
261       "Roo.bootstrap.TableRow",
262       "Roo.bootstrap.UploadCropbox",
263       "Roo.bootstrap.breadcrumb.Item",
264       "Roo.bootstrap.breadcrumb.Nav",
265       "Roo.bootstrap.dash.NumberBox",
266       "Roo.bootstrap.dash.TabBox",
267       "Roo.bootstrap.dash.TabPane",
268       "Roo.bootstrap.form.DateSplitField",
269       "Roo.bootstrap.form.FieldLabel",
270       "Roo.bootstrap.form.Form",
271       "Roo.bootstrap.form.Input",
272       "Roo.bootstrap.form.Radio",
273       "Roo.bootstrap.layout.Manager",
274       "Roo.bootstrap.menu.Item",
275       "Roo.bootstrap.menu.Menu",
276       "Roo.bootstrap.menu.Separator",
277       "Roo.bootstrap.nav.Bar",
278       "Roo.bootstrap.nav.Group",
279       "Roo.bootstrap.nav.Item",
280       "Roo.bootstrap.nav.ProgressBar",
281       "Roo.bootstrap.nav.ProgressBarItem"
282     ],
283     "Roo.data.Tree" : [
284       "Roo.tree.TreePanel"
285     ],
286     "Roo.dd.DD" : [
287       "Roo.dd.DDProxy"
288     ],
289     "Roo.form.TextArea" : [
290       "Roo.form.FCKeditor"
291     ],
292     "Roo.grid.Grid" : [
293       "Roo.grid.Calendar",
294       "Roo.grid.EditorGrid"
295     ],
296     "Roo.Editor" : [
297       "Roo.grid.GridEditor",
298       "Roo.tree.TreeEditor"
299     ],
300     "Roo.bootstrap.nav.Simplebar" : [
301       "Roo.bootstrap.PagingToolbar",
302       "Roo.bootstrap.PopoverNav",
303       "Roo.bootstrap.form.HtmlEditorToolbarStandard",
304       "Roo.bootstrap.nav.Headerbar"
305     ],
306     "Roo.data.Connection" : [
307       "Roo.Ajax"
308     ],
309     "Roo.dd.DragSource" : [
310       "Roo.dd.DragZone"
311     ],
312     "Roo.bootstrap.nav.Bar" : [
313       "Roo.bootstrap.nav.Sidebar",
314       "Roo.bootstrap.nav.Simplebar"
315     ],
316     "Roo.BasicLayoutRegion" : [
317       "Roo.LayoutRegion"
318     ],
319     "Roo.data.Node" : [
320       "Roo.tree.TreeNode"
321     ]
322   },
323   "tree_children" : [],
324   "tree_parent" : [],
325   "desc" : "Base class that provides a common interface for publishing events. Subclasses are expected to\nto have a property \"events\" with all the events defined.<br>\nFor example:\n<pre><code>\n Employee = function(name){\n    this.name = name;\n    this.addEvents({\n        \"fired\" : true,\n        \"quit\" : true\n    });\n }\n Roo.extend(Employee, Roo.util.Observable);\n</code></pre>",
326   "isSingleton" : false,
327   "isStatic" : false,
328   "isBuiltin" : false,
329   "isAbstract" : false,
330   "isBuilderTop" : false,
331   "memberOf" : "Observable",
332   "example" : "",
333   "deprecated" : "",
334   "since" : "",
335   "see" : "",
336   "params" : [
337     {
338       "name" : "config",
339       "type" : "Object",
340       "desc" : "properties to use (incuding events / listeners)",
341       "isOptional" : false
342     }
343   ],
344   "returns" : [],
345   "throws" : "",
346   "requires" : "",
347   "config" : [
348     {
349       "name" : "listeners",
350       "type" : "Object",
351       "desc" : "list of events and functions to call for this object, \nFor example :\n<pre><code>\n    listeners :  { \n       'click' : function(e) {\n           ..... \n        } ,\n        .... \n    } \n  </code></pre>",
352       "memberOf" : "",
353       "isOptional" : false,
354       "optvals" : []
355     }
356   ],
357   "methods" : [
358     {
359       "name" : "purgeListeners",
360       "type" : "function",
361       "desc" : "Removes all listeners for this object",
362       "sig" : "()\n{\n\n}",
363       "static" : false,
364       "memberOf" : "",
365       "isStatic" : false,
366       "isConstructor" : false,
367       "isPrivate" : false,
368       "example" : "",
369       "deprecated" : "",
370       "since" : "",
371       "see" : "",
372       "exceptions" : "",
373       "requires" : "",
374       "params" : [],
375       "returns" : []
376     },
377     {
378       "name" : "on",
379       "type" : "function",
380       "desc" : "Appends an event handler to this element (shorthand for addListener)",
381       "sig" : "(eventName, handler, scope, options)",
382       "static" : false,
383       "memberOf" : "",
384       "isStatic" : false,
385       "isConstructor" : false,
386       "isPrivate" : false,
387       "example" : "",
388       "deprecated" : "",
389       "since" : "",
390       "see" : "",
391       "exceptions" : "",
392       "requires" : "",
393       "params" : [
394         {
395           "name" : "eventName",
396           "type" : "String",
397           "desc" : "The type of event to listen for",
398           "isOptional" : false
399         },
400         {
401           "name" : "handler",
402           "type" : "Function",
403           "desc" : "The method the event invokes",
404           "isOptional" : false
405         },
406         {
407           "name" : "scope",
408           "type" : "Object",
409           "desc" : "(optional) The scope in which to execute the handler\nfunction. The handler function's \"this\" context.",
410           "isOptional" : false
411         },
412         {
413           "name" : "options",
414           "type" : "Object",
415           "desc" : "(optional)",
416           "isOptional" : false
417         }
418       ],
419       "returns" : []
420     },
421     {
422       "name" : "un",
423       "type" : "function",
424       "desc" : "Removes a listener (shorthand for removeListener)",
425       "sig" : "(eventName, handler, scope)",
426       "static" : false,
427       "memberOf" : "",
428       "isStatic" : false,
429       "isConstructor" : false,
430       "isPrivate" : false,
431       "example" : "",
432       "deprecated" : "",
433       "since" : "",
434       "see" : "",
435       "exceptions" : "",
436       "requires" : "",
437       "params" : [
438         {
439           "name" : "eventName",
440           "type" : "String",
441           "desc" : "The type of event to listen for",
442           "isOptional" : false
443         },
444         {
445           "name" : "handler",
446           "type" : "Function",
447           "desc" : "The handler to remove",
448           "isOptional" : false
449         },
450         {
451           "name" : "scope",
452           "type" : "Object",
453           "desc" : "(optional) The scope (this object) for the handler",
454           "isOptional" : false
455         }
456       ],
457       "returns" : []
458     },
459     {
460       "name" : "addEvents",
461       "type" : "function",
462       "desc" : "Used to define events on this Observable",
463       "sig" : "(object)",
464       "static" : false,
465       "memberOf" : "",
466       "isStatic" : false,
467       "isConstructor" : false,
468       "isPrivate" : false,
469       "example" : "",
470       "deprecated" : "",
471       "since" : "",
472       "see" : "",
473       "exceptions" : "",
474       "requires" : "",
475       "params" : [
476         {
477           "name" : "object",
478           "type" : "Object",
479           "desc" : "The object with the events defined",
480           "isOptional" : false
481         }
482       ],
483       "returns" : []
484     },
485     {
486       "name" : "releaseCapture",
487       "type" : "function",
488       "desc" : "Removes <b>all</b> added captures from the Observable.",
489       "sig" : "(o)",
490       "static" : true,
491       "memberOf" : "",
492       "isStatic" : true,
493       "isConstructor" : false,
494       "isPrivate" : false,
495       "example" : "",
496       "deprecated" : "",
497       "since" : "",
498       "see" : "",
499       "exceptions" : "",
500       "requires" : "",
501       "params" : [
502         {
503           "name" : "o",
504           "type" : "Observable",
505           "desc" : "The Observable to release",
506           "isOptional" : false
507         }
508       ],
509       "returns" : []
510     },
511     {
512       "name" : "removeListener",
513       "type" : "function",
514       "desc" : "Removes a listener",
515       "sig" : "(eventName, handler, scope)",
516       "static" : false,
517       "memberOf" : "",
518       "isStatic" : false,
519       "isConstructor" : false,
520       "isPrivate" : false,
521       "example" : "",
522       "deprecated" : "",
523       "since" : "",
524       "see" : "",
525       "exceptions" : "",
526       "requires" : "",
527       "params" : [
528         {
529           "name" : "eventName",
530           "type" : "String",
531           "desc" : "The type of event to listen for",
532           "isOptional" : false
533         },
534         {
535           "name" : "handler",
536           "type" : "Function",
537           "desc" : "The handler to remove",
538           "isOptional" : false
539         },
540         {
541           "name" : "scope",
542           "type" : "Object",
543           "desc" : "(optional) The scope (this object) for the handler",
544           "isOptional" : false
545         }
546       ],
547       "returns" : []
548     },
549     {
550       "name" : "fireEvent",
551       "type" : "function",
552       "desc" : "Fires the specified event with the passed parameters (minus the event name).",
553       "sig" : "(eventName, args)",
554       "static" : false,
555       "memberOf" : "",
556       "isStatic" : false,
557       "isConstructor" : false,
558       "isPrivate" : false,
559       "example" : "",
560       "deprecated" : "",
561       "since" : "",
562       "see" : "",
563       "exceptions" : "",
564       "requires" : "",
565       "params" : [
566         {
567           "name" : "eventName",
568           "type" : "String",
569           "desc" : "",
570           "isOptional" : false
571         },
572         {
573           "name" : "args",
574           "type" : "Object...",
575           "desc" : "Variable number of parameters are passed to handlers",
576           "isOptional" : false
577         }
578       ],
579       "returns" : [
580         {
581           "name" : "",
582           "type" : "Boolean",
583           "desc" : "returns false if any of the handlers return false otherwise it returns true"
584         }
585       ]
586     },
587     {
588       "name" : "hasListener",
589       "type" : "function",
590       "desc" : "Checks to see if this object has any listeners for a specified event",
591       "sig" : "(eventName)",
592       "static" : false,
593       "memberOf" : "",
594       "isStatic" : false,
595       "isConstructor" : false,
596       "isPrivate" : false,
597       "example" : "",
598       "deprecated" : "",
599       "since" : "",
600       "see" : "",
601       "exceptions" : "",
602       "requires" : "",
603       "params" : [
604         {
605           "name" : "eventName",
606           "type" : "String",
607           "desc" : "The name of the event to check for",
608           "isOptional" : false
609         }
610       ],
611       "returns" : [
612         {
613           "name" : "",
614           "type" : "Boolean",
615           "desc" : "True if the event is being listened for, else false"
616         }
617       ]
618     },
619     {
620       "name" : "capture",
621       "type" : "function",
622       "desc" : "Starts capture on the specified Observable. All events will be passed\nto the supplied function with the event name + standard signature of the event\n<b>before</b> the event is fired. If the supplied function returns false,\nthe event will not fire.",
623       "sig" : "(o, fn, scope)",
624       "static" : true,
625       "memberOf" : "",
626       "isStatic" : true,
627       "isConstructor" : false,
628       "isPrivate" : false,
629       "example" : "",
630       "deprecated" : "",
631       "since" : "",
632       "see" : "",
633       "exceptions" : "",
634       "requires" : "",
635       "params" : [
636         {
637           "name" : "o",
638           "type" : "Observable",
639           "desc" : "The Observable to capture",
640           "isOptional" : false
641         },
642         {
643           "name" : "fn",
644           "type" : "Function",
645           "desc" : "The function to call",
646           "isOptional" : false
647         },
648         {
649           "name" : "scope",
650           "type" : "Object",
651           "desc" : "(optional) The scope (this object) for the fn",
652           "isOptional" : false
653         }
654       ],
655       "returns" : []
656     },
657     {
658       "name" : "addListener",
659       "type" : "function",
660       "desc" : "Appends an event handler to this component",
661       "sig" : "(eventName, handler, scope, options)",
662       "static" : false,
663       "memberOf" : "",
664       "isStatic" : false,
665       "isConstructor" : false,
666       "isPrivate" : false,
667       "example" : "",
668       "deprecated" : "",
669       "since" : "",
670       "see" : "",
671       "exceptions" : "",
672       "requires" : "",
673       "params" : [
674         {
675           "name" : "eventName",
676           "type" : "String",
677           "desc" : "The type of event to listen for",
678           "isOptional" : false
679         },
680         {
681           "name" : "handler",
682           "type" : "Function",
683           "desc" : "The method the event invokes",
684           "isOptional" : false
685         },
686         {
687           "name" : "scope",
688           "type" : "Object",
689           "desc" : "(optional) The scope in which to execute the handler\nfunction. The handler function's \"this\" context.",
690           "isOptional" : false
691         },
692         {
693           "name" : "options",
694           "type" : "Object",
695           "desc" : "(optional) An object containing handler configuration\nproperties. This may contain any of the following properties:<ul>\n<li>scope {Object} The scope in which to execute the handler function. The handler function's \"this\" context.</li>\n<li>delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.</li>\n<li>single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.</li>\n<li>buffer {Number} Causes the handler to be scheduled to run in an {@link Roo.util.DelayedTask} delayed\nby the specified number of milliseconds. If the event fires again within that time, the original\nhandler is <em>not</em> invoked, but the new handler is scheduled in its place.</li>\n</ul><br>\n<p>\n<b>Combining Options</b><br>\nUsing the options argument, it is possible to combine different types of listeners:<br>\n<br>\nA normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)\n\t\t<pre><code>\n\t\tel.on('click', this.onClick, this, {\n \t\t\tsingle: true,\n    \t\tdelay: 100,\n    \t\tforumId: 4\n\t\t});\n\t\t</code></pre>\n<p>\n<b>Attaching multiple handlers in 1 call</b><br>\nThe method also allows for a single argument to be passed which is a config object containing properties\nwhich specify multiple handlers.\n<pre><code>\n\t\tel.on({\n\t\t\t'click': {\n        \t\tfn: this.onClick,\n        \t\tscope: this,\n        \t\tdelay: 100\n    \t\t}, \n    \t\t'mouseover': {\n        \t\tfn: this.onMouseOver,\n        \t\tscope: this\n    \t\t},\n    \t\t'mouseout': {\n        \t\tfn: this.onMouseOut,\n        \t\tscope: this\n    \t\t}\n\t\t});\n\t\t</code></pre>\n<p>\nOr a shorthand syntax which passes the same scope object to all handlers:\n     \t<pre><code>\n\t\tel.on({\n\t\t\t'click': this.onClick,\n    \t\t'mouseover': this.onMouseOver,\n    \t\t'mouseout': this.onMouseOut,\n    \t\tscope: this\n\t\t});\n\t\t</code></pre>",
696           "isOptional" : false
697         }
698       ],
699       "returns" : []
700     }
701   ],
702   "events" : []
703 }