5
<title>app/js/model.js - YUI 3</title>
6
<link rel="stylesheet" href="http://yui.yahooapis.com/3.5.0/build/cssgrids/cssgrids-min.css">
7
<link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
8
<link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
9
<script src="http://yui.yahooapis.com/3.5.0/build/yui/yui-min.js"></script>
11
<body class="yui3-skin-sam">
14
<div id="hd" class="yui3-g header">
15
<div class="yui3-u-3-4">
17
<h1><img src="../assets/css/logo.png" title="YUI 3"></h1>
20
<div class="yui3-u-1-4 version">
21
<em>API Docs for: 3.5.1</em>
24
<div id="bd" class="yui3-g">
26
<div class="yui3-u-1-4">
27
<div id="docs-sidebar" class="sidebar apidocs">
29
<h2 class="off-left">APIs</h2>
30
<div id="api-tabview" class="tabview">
32
<li><a href="#api-classes">Classes</a></li>
33
<li><a href="#api-modules">Modules</a></li>
36
<div id="api-tabview-filter">
37
<input type="search" id="api-filter" placeholder="Type to filter APIs">
40
<div id="api-tabview-panel">
41
<ul id="api-classes" class="apis classes">
43
<li><a href="../classes/Anim.html">Anim</a></li>
45
<li><a href="../classes/App.html">App</a></li>
47
<li><a href="../classes/App.Base.html">App.Base</a></li>
49
<li><a href="../classes/App.Transitions.html">App.Transitions</a></li>
51
<li><a href="../classes/App.TransitionsNative.html">App.TransitionsNative</a></li>
53
<li><a href="../classes/AreaSeries.html">AreaSeries</a></li>
55
<li><a href="../classes/AreaSplineSeries.html">AreaSplineSeries</a></li>
57
<li><a href="../classes/Array.html">Array</a></li>
59
<li><a href="../classes/ArrayList.html">ArrayList</a></li>
61
<li><a href="../classes/ArraySort.html">ArraySort</a></li>
63
<li><a href="../classes/AsyncQueue.html">AsyncQueue</a></li>
65
<li><a href="../classes/Attribute.html">Attribute</a></li>
67
<li><a href="../classes/AttributeCore.html">AttributeCore</a></li>
69
<li><a href="../classes/AttributeEvents.html">AttributeEvents</a></li>
71
<li><a href="../classes/AttributeExtras.html">AttributeExtras</a></li>
73
<li><a href="../classes/AttributeLite.html">AttributeLite</a></li>
75
<li><a href="../classes/AutoComplete.html">AutoComplete</a></li>
77
<li><a href="../classes/AutoCompleteBase.html">AutoCompleteBase</a></li>
79
<li><a href="../classes/AutoCompleteFilters.html">AutoCompleteFilters</a></li>
81
<li><a href="../classes/AutoCompleteHighlighters.html">AutoCompleteHighlighters</a></li>
83
<li><a href="../classes/AutoCompleteList.html">AutoCompleteList</a></li>
85
<li><a href="../classes/Axis.html">Axis</a></li>
87
<li><a href="../classes/AxisType.html">AxisType</a></li>
89
<li><a href="../classes/BarSeries.html">BarSeries</a></li>
91
<li><a href="../classes/Base.html">Base</a></li>
93
<li><a href="../classes/BaseCore.html">BaseCore</a></li>
95
<li><a href="../classes/BottomAxisLayout.html">BottomAxisLayout</a></li>
97
<li><a href="../classes/Button.html">Button</a></li>
99
<li><a href="../classes/ButtonCore.html">ButtonCore</a></li>
101
<li><a href="../classes/ButtonGroup.html">ButtonGroup</a></li>
103
<li><a href="../classes/ButtonPlugin.html">ButtonPlugin</a></li>
105
<li><a href="../classes/Cache.html">Cache</a></li>
107
<li><a href="../classes/CacheOffline.html">CacheOffline</a></li>
109
<li><a href="../classes/Calendar.html">Calendar</a></li>
111
<li><a href="../classes/CalendarBase.html">CalendarBase</a></li>
113
<li><a href="../classes/CanvasCircle.html">CanvasCircle</a></li>
115
<li><a href="../classes/CanvasDrawing.html">CanvasDrawing</a></li>
117
<li><a href="../classes/CanvasEllipse.html">CanvasEllipse</a></li>
119
<li><a href="../classes/CanvasGraphic.html">CanvasGraphic</a></li>
121
<li><a href="../classes/CanvasPath.html">CanvasPath</a></li>
123
<li><a href="../classes/CanvasPieSlice.html">CanvasPieSlice</a></li>
125
<li><a href="../classes/CanvasRect.html">CanvasRect</a></li>
127
<li><a href="../classes/CanvasShape.html">CanvasShape</a></li>
129
<li><a href="../classes/CartesianChart.html">CartesianChart</a></li>
131
<li><a href="../classes/CartesianSeries.html">CartesianSeries</a></li>
133
<li><a href="../classes/CategoryAxis.html">CategoryAxis</a></li>
135
<li><a href="../classes/Chart.html">Chart</a></li>
137
<li><a href="../classes/ChartBase.html">ChartBase</a></li>
139
<li><a href="../classes/ChartLegend.html">ChartLegend</a></li>
141
<li><a href="../classes/Circle.html">Circle</a></li>
143
<li><a href="../classes/ClassNameManager.html">ClassNameManager</a></li>
145
<li><a href="../classes/ClickableRail.html">ClickableRail</a></li>
147
<li><a href="../classes/ColumnSeries.html">ColumnSeries</a></li>
149
<li><a href="../classes/ComboSeries.html">ComboSeries</a></li>
151
<li><a href="../classes/ComboSplineSeries.html">ComboSplineSeries</a></li>
153
<li><a href="../classes/config.html">config</a></li>
155
<li><a href="../classes/Console.html">Console</a></li>
157
<li><a href="../classes/Controller.html">Controller</a></li>
159
<li><a href="../classes/Cookie.html">Cookie</a></li>
161
<li><a href="../classes/CurveUtil.html">CurveUtil</a></li>
163
<li><a href="../classes/CustomEvent.html">CustomEvent</a></li>
165
<li><a href="../classes/DataSchema.Array.html">DataSchema.Array</a></li>
167
<li><a href="../classes/DataSchema.Base.html">DataSchema.Base</a></li>
169
<li><a href="../classes/DataSchema.JSON.html">DataSchema.JSON</a></li>
171
<li><a href="../classes/DataSchema.Text.html">DataSchema.Text</a></li>
173
<li><a href="../classes/DataSchema.XML.html">DataSchema.XML</a></li>
175
<li><a href="../classes/DataSource.Function.html">DataSource.Function</a></li>
177
<li><a href="../classes/DataSource.Get.html">DataSource.Get</a></li>
179
<li><a href="../classes/DataSource.IO.html">DataSource.IO</a></li>
181
<li><a href="../classes/DataSource.Local.html">DataSource.Local</a></li>
183
<li><a href="../classes/DataSourceArraySchema.html">DataSourceArraySchema</a></li>
185
<li><a href="../classes/DataSourceCache.html">DataSourceCache</a></li>
187
<li><a href="../classes/DataSourceCacheExtension.html">DataSourceCacheExtension</a></li>
189
<li><a href="../classes/DataSourceJSONSchema.html">DataSourceJSONSchema</a></li>
191
<li><a href="../classes/DataSourceTextSchema.html">DataSourceTextSchema</a></li>
193
<li><a href="../classes/DataSourceXMLSchema.html">DataSourceXMLSchema</a></li>
195
<li><a href="../classes/DataTable.html">DataTable</a></li>
197
<li><a href="../classes/DataTable.Base.html">DataTable.Base</a></li>
199
<li><a href="../classes/DataTable.BodyView.html">DataTable.BodyView</a></li>
201
<li><a href="../classes/DataTable.ColumnWidths.html">DataTable.ColumnWidths</a></li>
203
<li><a href="../classes/DataTable.Core.html">DataTable.Core</a></li>
205
<li><a href="../classes/DataTable.HeaderView.html">DataTable.HeaderView</a></li>
207
<li><a href="../classes/DataTable.Message.html">DataTable.Message</a></li>
209
<li><a href="../classes/DataTable.Mutable.html">DataTable.Mutable</a></li>
211
<li><a href="../classes/DataTable.Scrollable.html">DataTable.Scrollable</a></li>
213
<li><a href="../classes/DataTable.Sortable.html">DataTable.Sortable</a></li>
215
<li><a href="../classes/DataType.Date.html">DataType.Date</a></li>
217
<li><a href="../classes/DataType.Date.Locale.html">DataType.Date.Locale</a></li>
219
<li><a href="../classes/DataType.Number.html">DataType.Number</a></li>
221
<li><a href="../classes/DataType.XML.html">DataType.XML</a></li>
223
<li><a href="../classes/DD.DDM.html">DD.DDM</a></li>
225
<li><a href="../classes/DD.Delegate.html">DD.Delegate</a></li>
227
<li><a href="../classes/DD.Drag.html">DD.Drag</a></li>
229
<li><a href="../classes/DD.Drop.html">DD.Drop</a></li>
231
<li><a href="../classes/DD.Scroll.html">DD.Scroll</a></li>
233
<li><a href="../classes/Dial.html">Dial</a></li>
235
<li><a href="../classes/Do.html">Do</a></li>
237
<li><a href="../classes/Do.AlterArgs.html">Do.AlterArgs</a></li>
239
<li><a href="../classes/Do.AlterReturn.html">Do.AlterReturn</a></li>
241
<li><a href="../classes/Do.Error.html">Do.Error</a></li>
243
<li><a href="../classes/Do.Halt.html">Do.Halt</a></li>
245
<li><a href="../classes/Do.Method.html">Do.Method</a></li>
247
<li><a href="../classes/Do.Prevent.html">Do.Prevent</a></li>
249
<li><a href="../classes/DOM.html">DOM</a></li>
251
<li><a href="../classes/DOMEventFacade.html">DOMEventFacade</a></li>
253
<li><a href="../classes/Drawing.html">Drawing</a></li>
255
<li><a href="../classes/Easing.html">Easing</a></li>
257
<li><a href="../classes/EditorBase.html">EditorBase</a></li>
259
<li><a href="../classes/EditorSelection.html">EditorSelection</a></li>
261
<li><a href="../classes/Ellipse.html">Ellipse</a></li>
263
<li><a href="../classes/EllipseGroup.html">EllipseGroup</a></li>
265
<li><a href="../classes/Escape.html">Escape</a></li>
267
<li><a href="../classes/Event.html">Event</a></li>
269
<li><a href="../classes/EventFacade.html">EventFacade</a></li>
271
<li><a href="../classes/EventHandle.html">EventHandle</a></li>
273
<li><a href="../classes/EventTarget.html">EventTarget</a></li>
275
<li><a href="../classes/ExecCommand.html">ExecCommand</a></li>
277
<li><a href="../classes/Features.html">Features</a></li>
279
<li><a href="../classes/File.html">File</a></li>
281
<li><a href="../classes/FileFlash.html">FileFlash</a></li>
283
<li><a href="../classes/FileHTML5.html">FileHTML5</a></li>
285
<li><a href="../classes/Fills.html">Fills</a></li>
287
<li><a href="../classes/Frame.html">Frame</a></li>
289
<li><a href="../classes/Get.html">Get</a></li>
291
<li><a href="../classes/Get.Transaction.html">Get.Transaction</a></li>
293
<li><a href="../classes/GetNodeJS.html">GetNodeJS</a></li>
295
<li><a href="../classes/Graph.html">Graph</a></li>
297
<li><a href="../classes/Graphic.html">Graphic</a></li>
299
<li><a href="../classes/GraphicBase.html">GraphicBase</a></li>
301
<li><a href="../classes/Gridlines.html">Gridlines</a></li>
303
<li><a href="../classes/GroupCircle.html">GroupCircle</a></li>
305
<li><a href="../classes/GroupDiamond.html">GroupDiamond</a></li>
307
<li><a href="../classes/GroupRect.html">GroupRect</a></li>
309
<li><a href="../classes/Handlebars.html">Handlebars</a></li>
311
<li><a href="../classes/Highlight.html">Highlight</a></li>
313
<li><a href="../classes/Histogram.html">Histogram</a></li>
315
<li><a href="../classes/HistoryBase.html">HistoryBase</a></li>
317
<li><a href="../classes/HistoryHash.html">HistoryHash</a></li>
319
<li><a href="../classes/HistoryHTML5.html">HistoryHTML5</a></li>
321
<li><a href="../classes/HorizontalLegendLayout.html">HorizontalLegendLayout</a></li>
323
<li><a href="../classes/ImgLoadGroup.html">ImgLoadGroup</a></li>
325
<li><a href="../classes/ImgLoadImgObj.html">ImgLoadImgObj</a></li>
327
<li><a href="../classes/Intl.html">Intl</a></li>
329
<li><a href="../classes/IO.html">IO</a></li>
331
<li><a href="../classes/JSON.html">JSON</a></li>
333
<li><a href="../classes/JSONPRequest.html">JSONPRequest</a></li>
335
<li><a href="../classes/Lang.html">Lang</a></li>
337
<li><a href="../classes/LeftAxisLayout.html">LeftAxisLayout</a></li>
339
<li><a href="../classes/Lines.html">Lines</a></li>
341
<li><a href="../classes/LineSeries.html">LineSeries</a></li>
343
<li><a href="../classes/Loader.html">Loader</a></li>
345
<li><a href="../classes/MarkerSeries.html">MarkerSeries</a></li>
347
<li><a href="../classes/Matrix.html">Matrix</a></li>
349
<li><a href="../classes/Model.html">Model</a></li>
351
<li><a href="../classes/ModelList.html">ModelList</a></li>
353
<li><a href="../classes/Node.html">Node</a></li>
355
<li><a href="../classes/NodeList.html">NodeList</a></li>
357
<li><a href="../classes/NumericAxis.html">NumericAxis</a></li>
359
<li><a href="../classes/Object.html">Object</a></li>
361
<li><a href="../classes/Overlay.html">Overlay</a></li>
363
<li><a href="../classes/Panel.html">Panel</a></li>
365
<li><a href="../classes/Parallel.html">Parallel</a></li>
367
<li><a href="../classes/Path.html">Path</a></li>
369
<li><a href="../classes/PieChart.html">PieChart</a></li>
371
<li><a href="../classes/PieSeries.html">PieSeries</a></li>
373
<li><a href="../classes/Pjax.html">Pjax</a></li>
375
<li><a href="../classes/PjaxBase.html">PjaxBase</a></li>
377
<li><a href="../classes/Plots.html">Plots</a></li>
379
<li><a href="../classes/Plugin.Align.html">Plugin.Align</a></li>
381
<li><a href="../classes/Plugin.AutoComplete.html">Plugin.AutoComplete</a></li>
383
<li><a href="../classes/Plugin.Base.html">Plugin.Base</a></li>
385
<li><a href="../classes/Plugin.Cache.html">Plugin.Cache</a></li>
387
<li><a href="../classes/Plugin.CalendarNavigator.html">Plugin.CalendarNavigator</a></li>
389
<li><a href="../classes/Plugin.ConsoleFilters.html">Plugin.ConsoleFilters</a></li>
391
<li><a href="../classes/Plugin.CreateLinkBase.html">Plugin.CreateLinkBase</a></li>
393
<li><a href="../classes/Plugin.DataTableDataSource.html">Plugin.DataTableDataSource</a></li>
395
<li><a href="../classes/Plugin.DDConstrained.html">Plugin.DDConstrained</a></li>
397
<li><a href="../classes/Plugin.DDNodeScroll.html">Plugin.DDNodeScroll</a></li>
399
<li><a href="../classes/Plugin.DDProxy.html">Plugin.DDProxy</a></li>
401
<li><a href="../classes/Plugin.DDWindowScroll.html">Plugin.DDWindowScroll</a></li>
403
<li><a href="../classes/Plugin.Drag.html">Plugin.Drag</a></li>
405
<li><a href="../classes/Plugin.Drop.html">Plugin.Drop</a></li>
407
<li><a href="../classes/Plugin.EditorBidi.html">Plugin.EditorBidi</a></li>
409
<li><a href="../classes/Plugin.EditorBR.html">Plugin.EditorBR</a></li>
411
<li><a href="../classes/Plugin.EditorLists.html">Plugin.EditorLists</a></li>
413
<li><a href="../classes/Plugin.EditorPara.html">Plugin.EditorPara</a></li>
415
<li><a href="../classes/Plugin.EditorParaBase.html">Plugin.EditorParaBase</a></li>
417
<li><a href="../classes/Plugin.EditorParaIE.html">Plugin.EditorParaIE</a></li>
419
<li><a href="../classes/Plugin.EditorTab.html">Plugin.EditorTab</a></li>
421
<li><a href="../classes/Plugin.ExecCommand.html">Plugin.ExecCommand</a></li>
423
<li><a href="../classes/Plugin.Flick.html">Plugin.Flick</a></li>
425
<li><a href="../classes/Plugin.Host.html">Plugin.Host</a></li>
427
<li><a href="../classes/plugin.NodeFocusManager.html">plugin.NodeFocusManager</a></li>
429
<li><a href="../classes/Plugin.NodeFX.html">Plugin.NodeFX</a></li>
431
<li><a href="../classes/plugin.NodeMenuNav.html">plugin.NodeMenuNav</a></li>
433
<li><a href="../classes/Plugin.Pjax.html">Plugin.Pjax</a></li>
435
<li><a href="../classes/Plugin.Resize.html">Plugin.Resize</a></li>
437
<li><a href="../classes/Plugin.ResizeConstrained.html">Plugin.ResizeConstrained</a></li>
439
<li><a href="../classes/Plugin.ResizeProxy.html">Plugin.ResizeProxy</a></li>
441
<li><a href="../classes/Plugin.ScrollViewList.html">Plugin.ScrollViewList</a></li>
443
<li><a href="../classes/Plugin.ScrollViewPaginator.html">Plugin.ScrollViewPaginator</a></li>
445
<li><a href="../classes/Plugin.ScrollViewScrollbars.html">Plugin.ScrollViewScrollbars</a></li>
447
<li><a href="../classes/Plugin.Shim.html">Plugin.Shim</a></li>
449
<li><a href="../classes/Plugin.SortScroll.html">Plugin.SortScroll</a></li>
451
<li><a href="../classes/Plugin.WidgetAnim.html">Plugin.WidgetAnim</a></li>
453
<li><a href="../classes/Pollable.html">Pollable</a></li>
455
<li><a href="../classes/Profiler.html">Profiler</a></li>
457
<li><a href="../classes/QueryString.html">QueryString</a></li>
459
<li><a href="../classes/Queue.html">Queue</a></li>
461
<li><a href="../classes/Record.html">Record</a></li>
463
<li><a href="../classes/Recordset.html">Recordset</a></li>
465
<li><a href="../classes/RecordsetFilter.html">RecordsetFilter</a></li>
467
<li><a href="../classes/RecordsetIndexer.html">RecordsetIndexer</a></li>
469
<li><a href="../classes/RecordsetSort.html">RecordsetSort</a></li>
471
<li><a href="../classes/Rect.html">Rect</a></li>
473
<li><a href="../classes/Renderer.html">Renderer</a></li>
475
<li><a href="../classes/Resize.html">Resize</a></li>
477
<li><a href="../classes/RightAxisLayout.html">RightAxisLayout</a></li>
479
<li><a href="../classes/Router.html">Router</a></li>
481
<li><a href="../classes/ScrollView.html">ScrollView</a></li>
483
<li><a href="../classes/Selector.html">Selector</a></li>
485
<li><a href="../classes/Shape.html">Shape</a></li>
487
<li><a href="../classes/ShapeGroup.html">ShapeGroup</a></li>
489
<li><a href="../classes/Slider.html">Slider</a></li>
491
<li><a href="../classes/SliderBase.html">SliderBase</a></li>
493
<li><a href="../classes/SliderValueRange.html">SliderValueRange</a></li>
495
<li><a href="../classes/Sortable.html">Sortable</a></li>
497
<li><a href="../classes/SplineSeries.html">SplineSeries</a></li>
499
<li><a href="../classes/StackedAreaSeries.html">StackedAreaSeries</a></li>
501
<li><a href="../classes/StackedAreaSplineSeries.html">StackedAreaSplineSeries</a></li>
503
<li><a href="../classes/StackedAxis.html">StackedAxis</a></li>
505
<li><a href="../classes/StackedBarSeries.html">StackedBarSeries</a></li>
507
<li><a href="../classes/StackedColumnSeries.html">StackedColumnSeries</a></li>
509
<li><a href="../classes/StackedComboSeries.html">StackedComboSeries</a></li>
511
<li><a href="../classes/StackedComboSplineSeries.html">StackedComboSplineSeries</a></li>
513
<li><a href="../classes/StackedLineSeries.html">StackedLineSeries</a></li>
515
<li><a href="../classes/StackedMarkerSeries.html">StackedMarkerSeries</a></li>
517
<li><a href="../classes/StackedSplineSeries.html">StackedSplineSeries</a></li>
519
<li><a href="../classes/StackingUtil.html">StackingUtil</a></li>
521
<li><a href="../classes/State.html">State</a></li>
523
<li><a href="../classes/StyleSheet.html">StyleSheet</a></li>
525
<li><a href="../classes/Subscriber.html">Subscriber</a></li>
527
<li><a href="../classes/SVGCircle.html">SVGCircle</a></li>
529
<li><a href="../classes/SVGDrawing.html">SVGDrawing</a></li>
531
<li><a href="../classes/SVGEllipse.html">SVGEllipse</a></li>
533
<li><a href="../classes/SVGGraphic.html">SVGGraphic</a></li>
535
<li><a href="../classes/SVGPath.html">SVGPath</a></li>
537
<li><a href="../classes/SVGPieSlice.html">SVGPieSlice</a></li>
539
<li><a href="../classes/SVGRect.html">SVGRect</a></li>
541
<li><a href="../classes/SVGShape.html">SVGShape</a></li>
543
<li><a href="../classes/SWF.html">SWF</a></li>
545
<li><a href="../classes/SWFDetect.html">SWFDetect</a></li>
547
<li><a href="../classes/SyntheticEvent.html">SyntheticEvent</a></li>
549
<li><a href="../classes/SyntheticEvent.Notifier.html">SyntheticEvent.Notifier</a></li>
551
<li><a href="../classes/SynthRegistry.html">SynthRegistry</a></li>
553
<li><a href="../classes/Tab.html">Tab</a></li>
555
<li><a href="../classes/TabView.html">TabView</a></li>
557
<li><a href="../classes/Test.ArrayAssert.html">Test.ArrayAssert</a></li>
559
<li><a href="../classes/Test.Assert.html">Test.Assert</a></li>
561
<li><a href="../classes/Test.AssertionError.html">Test.AssertionError</a></li>
563
<li><a href="../classes/Test.ComparisonFailure.html">Test.ComparisonFailure</a></li>
565
<li><a href="../classes/Test.Console.html">Test.Console</a></li>
567
<li><a href="../classes/Test.CoverageFormat.html">Test.CoverageFormat</a></li>
569
<li><a href="../classes/Test.DateAssert.html">Test.DateAssert</a></li>
571
<li><a href="../classes/Test.EventTarget.html">Test.EventTarget</a></li>
573
<li><a href="../classes/Test.Mock.html">Test.Mock</a></li>
575
<li><a href="../classes/Test.Mock.Value.html">Test.Mock.Value</a></li>
577
<li><a href="../classes/Test.ObjectAssert.html">Test.ObjectAssert</a></li>
579
<li><a href="../classes/Test.Reporter.html">Test.Reporter</a></li>
581
<li><a href="../classes/Test.Results.html">Test.Results</a></li>
583
<li><a href="../classes/Test.Runner.html">Test.Runner</a></li>
585
<li><a href="../classes/Test.ShouldError.html">Test.ShouldError</a></li>
587
<li><a href="../classes/Test.ShouldFail.html">Test.ShouldFail</a></li>
589
<li><a href="../classes/Test.TestCase.html">Test.TestCase</a></li>
591
<li><a href="../classes/Test.TestFormat.html">Test.TestFormat</a></li>
593
<li><a href="../classes/Test.TestNode.html">Test.TestNode</a></li>
595
<li><a href="../classes/Test.TestRunner.html">Test.TestRunner</a></li>
597
<li><a href="../classes/Test.TestSuite.html">Test.TestSuite</a></li>
599
<li><a href="../classes/Test.UnexpectedError.html">Test.UnexpectedError</a></li>
601
<li><a href="../classes/Test.UnexpectedValue.html">Test.UnexpectedValue</a></li>
603
<li><a href="../classes/Test.Wait.html">Test.Wait</a></li>
605
<li><a href="../classes/Text.AccentFold.html">Text.AccentFold</a></li>
607
<li><a href="../classes/Text.WordBreak.html">Text.WordBreak</a></li>
609
<li><a href="../classes/TimeAxis.html">TimeAxis</a></li>
611
<li><a href="../classes/ToggleButton.html">ToggleButton</a></li>
613
<li><a href="../classes/TopAxisLayout.html">TopAxisLayout</a></li>
615
<li><a href="../classes/Transition.html">Transition</a></li>
617
<li><a href="../classes/UA.html">UA</a></li>
619
<li><a href="../classes/Uploader.html">Uploader</a></li>
621
<li><a href="../classes/Uploader.Queue.html">Uploader.Queue</a></li>
623
<li><a href="../classes/UploaderFlash.html">UploaderFlash</a></li>
625
<li><a href="../classes/UploaderHTML5.html">UploaderHTML5</a></li>
627
<li><a href="../classes/ValueChange.html">ValueChange</a></li>
629
<li><a href="../classes/VerticalLegendLayout.html">VerticalLegendLayout</a></li>
631
<li><a href="../classes/View.html">View</a></li>
633
<li><a href="../classes/View.NodeMap.html">View.NodeMap</a></li>
635
<li><a href="../classes/VMLCircle.html">VMLCircle</a></li>
637
<li><a href="../classes/VMLDrawing.html">VMLDrawing</a></li>
639
<li><a href="../classes/VMLEllipse.html">VMLEllipse</a></li>
641
<li><a href="../classes/VMLGraphic.html">VMLGraphic</a></li>
643
<li><a href="../classes/VMLPath.html">VMLPath</a></li>
645
<li><a href="../classes/VMLPieSlice.html">VMLPieSlice</a></li>
647
<li><a href="../classes/VMLRect.html">VMLRect</a></li>
649
<li><a href="../classes/VMLShape.html">VMLShape</a></li>
651
<li><a href="../classes/Widget.html">Widget</a></li>
653
<li><a href="../classes/WidgetAutohide.html">WidgetAutohide</a></li>
655
<li><a href="../classes/WidgetButtons.html">WidgetButtons</a></li>
657
<li><a href="../classes/WidgetChild.html">WidgetChild</a></li>
659
<li><a href="../classes/WidgetModality.html">WidgetModality</a></li>
661
<li><a href="../classes/WidgetParent.html">WidgetParent</a></li>
663
<li><a href="../classes/WidgetPosition.html">WidgetPosition</a></li>
665
<li><a href="../classes/WidgetPositionAlign.html">WidgetPositionAlign</a></li>
667
<li><a href="../classes/WidgetPositionConstrain.html">WidgetPositionConstrain</a></li>
669
<li><a href="../classes/WidgetStack.html">WidgetStack</a></li>
671
<li><a href="../classes/WidgetStdMod.html">WidgetStdMod</a></li>
673
<li><a href="../classes/YQL.html">YQL</a></li>
675
<li><a href="../classes/YQLRequest.html">YQLRequest</a></li>
677
<li><a href="../classes/YUI.html">YUI</a></li>
679
<li><a href="../classes/YUI~substitute.html">YUI~substitute</a></li>
683
<ul id="api-modules" class="apis modules">
685
<li><a href="../modules/align-plugin.html">align-plugin</a></li>
687
<li><a href="../modules/anim.html">anim</a></li>
689
<li><a href="../modules/anim-base.html">anim-base</a></li>
691
<li><a href="../modules/anim-color.html">anim-color</a></li>
693
<li><a href="../modules/anim-curve.html">anim-curve</a></li>
695
<li><a href="../modules/anim-easing.html">anim-easing</a></li>
697
<li><a href="../modules/anim-node-plugin.html">anim-node-plugin</a></li>
699
<li><a href="../modules/anim-scroll.html">anim-scroll</a></li>
701
<li><a href="../modules/anim-shape-transform.html">anim-shape-transform</a></li>
703
<li><a href="../modules/anim-xy.html">anim-xy</a></li>
705
<li><a href="../modules/app.html">app</a></li>
707
<li><a href="../modules/app-base.html">app-base</a></li>
709
<li><a href="../modules/app-transitions.html">app-transitions</a></li>
711
<li><a href="../modules/app-transitions-native.html">app-transitions-native</a></li>
713
<li><a href="../modules/array-extras.html">array-extras</a></li>
715
<li><a href="../modules/array-invoke.html">array-invoke</a></li>
717
<li><a href="../modules/arraylist.html">arraylist</a></li>
719
<li><a href="../modules/arraylist-add.html">arraylist-add</a></li>
721
<li><a href="../modules/arraylist-filter.html">arraylist-filter</a></li>
723
<li><a href="../modules/arraysort.html">arraysort</a></li>
725
<li><a href="../modules/async-queue.html">async-queue</a></li>
727
<li><a href="../modules/attribute.html">attribute</a></li>
729
<li><a href="../modules/attribute-base.html">attribute-base</a></li>
731
<li><a href="../modules/attribute-complex.html">attribute-complex</a></li>
733
<li><a href="../modules/attribute-core.html">attribute-core</a></li>
735
<li><a href="../modules/attribute-events.html">attribute-events</a></li>
737
<li><a href="../modules/attribute-extras.html">attribute-extras</a></li>
739
<li><a href="../modules/autocomplete.html">autocomplete</a></li>
741
<li><a href="../modules/autocomplete-base.html">autocomplete-base</a></li>
743
<li><a href="../modules/autocomplete-filters.html">autocomplete-filters</a></li>
745
<li><a href="../modules/autocomplete-filters-accentfold.html">autocomplete-filters-accentfold</a></li>
747
<li><a href="../modules/autocomplete-highlighters.html">autocomplete-highlighters</a></li>
749
<li><a href="../modules/autocomplete-highlighters-accentfold.html">autocomplete-highlighters-accentfold</a></li>
751
<li><a href="../modules/autocomplete-list.html">autocomplete-list</a></li>
753
<li><a href="../modules/autocomplete-list-keys.html">autocomplete-list-keys</a></li>
755
<li><a href="../modules/autocomplete-plugin.html">autocomplete-plugin</a></li>
757
<li><a href="../modules/autocomplete-sources.html">autocomplete-sources</a></li>
759
<li><a href="../modules/base.html">base</a></li>
761
<li><a href="../modules/base-base.html">base-base</a></li>
763
<li><a href="../modules/base-build.html">base-build</a></li>
765
<li><a href="../modules/base-core.html">base-core</a></li>
767
<li><a href="../modules/base-pluginhost.html">base-pluginhost</a></li>
769
<li><a href="../modules/button.html">button</a></li>
771
<li><a href="../modules/button-core.html">button-core</a></li>
773
<li><a href="../modules/button-group.html">button-group</a></li>
775
<li><a href="../modules/button-plugin.html">button-plugin</a></li>
777
<li><a href="../modules/cache.html">cache</a></li>
779
<li><a href="../modules/cache-base.html">cache-base</a></li>
781
<li><a href="../modules/cache-offline.html">cache-offline</a></li>
783
<li><a href="../modules/cache-plugin.html">cache-plugin</a></li>
785
<li><a href="../modules/calendar.html">calendar</a></li>
787
<li><a href="../modules/calendar-base.html">calendar-base</a></li>
789
<li><a href="../modules/calendarnavigator.html">calendarnavigator</a></li>
791
<li><a href="../modules/charts.html">charts</a></li>
793
<li><a href="../modules/charts-legend.html">charts-legend</a></li>
795
<li><a href="../modules/classnamemanager.html">classnamemanager</a></li>
797
<li><a href="../modules/clickable-rail.html">clickable-rail</a></li>
799
<li><a href="../modules/collection.html">collection</a></li>
801
<li><a href="../modules/console.html">console</a></li>
803
<li><a href="../modules/console-filters.html">console-filters</a></li>
805
<li><a href="../modules/cookie.html">cookie</a></li>
807
<li><a href="../modules/createlink-base.html">createlink-base</a></li>
809
<li><a href="../modules/dataschema.html">dataschema</a></li>
811
<li><a href="../modules/dataschema-array.html">dataschema-array</a></li>
813
<li><a href="../modules/dataschema-base.html">dataschema-base</a></li>
815
<li><a href="../modules/dataschema-json.html">dataschema-json</a></li>
817
<li><a href="../modules/dataschema-text.html">dataschema-text</a></li>
819
<li><a href="../modules/dataschema-xml.html">dataschema-xml</a></li>
821
<li><a href="../modules/datasource.html">datasource</a></li>
823
<li><a href="../modules/datasource-arrayschema.html">datasource-arrayschema</a></li>
825
<li><a href="../modules/datasource-cache.html">datasource-cache</a></li>
827
<li><a href="../modules/datasource-function.html">datasource-function</a></li>
829
<li><a href="../modules/datasource-get.html">datasource-get</a></li>
831
<li><a href="../modules/datasource-io.html">datasource-io</a></li>
833
<li><a href="../modules/datasource-jsonschema.html">datasource-jsonschema</a></li>
835
<li><a href="../modules/datasource-local.html">datasource-local</a></li>
837
<li><a href="../modules/datasource-polling.html">datasource-polling</a></li>
839
<li><a href="../modules/datasource-textschema.html">datasource-textschema</a></li>
841
<li><a href="../modules/datasource-xmlschema.html">datasource-xmlschema</a></li>
843
<li><a href="../modules/datatable.html">datatable</a></li>
845
<li><a href="../modules/datatable-base.html">datatable-base</a></li>
847
<li><a href="../modules/datatable-base-deprecated.html">datatable-base-deprecated</a></li>
849
<li><a href="../modules/datatable-body.html">datatable-body</a></li>
851
<li><a href="../modules/datatable-column-widths.html">datatable-column-widths</a></li>
853
<li><a href="../modules/datatable-core.html">datatable-core</a></li>
855
<li><a href="../modules/datatable-datasource.html">datatable-datasource</a></li>
857
<li><a href="../modules/datatable-datasource-deprecated.html">datatable-datasource-deprecated</a></li>
859
<li><a href="../modules/datatable-deprecated.html">datatable-deprecated</a></li>
861
<li><a href="../modules/datatable-head.html">datatable-head</a></li>
863
<li><a href="../modules/datatable-message.html">datatable-message</a></li>
865
<li><a href="../modules/datatable-mutable.html">datatable-mutable</a></li>
867
<li><a href="../modules/datatable-scroll.html">datatable-scroll</a></li>
869
<li><a href="../modules/datatable-scroll-deprecated.html">datatable-scroll-deprecated</a></li>
871
<li><a href="../modules/datatable-sort.html">datatable-sort</a></li>
873
<li><a href="../modules/datatable-sort-deprecated.html">datatable-sort-deprecated</a></li>
875
<li><a href="../modules/datatype.html">datatype</a></li>
877
<li><a href="../modules/datatype-date.html">datatype-date</a></li>
879
<li><a href="../modules/datatype-date-format.html">datatype-date-format</a></li>
881
<li><a href="../modules/datatype-date-math.html">datatype-date-math</a></li>
883
<li><a href="../modules/datatype-date-parse.html">datatype-date-parse</a></li>
885
<li><a href="../modules/datatype-number.html">datatype-number</a></li>
887
<li><a href="../modules/datatype-number-format.html">datatype-number-format</a></li>
889
<li><a href="../modules/datatype-number-parse.html">datatype-number-parse</a></li>
891
<li><a href="../modules/datatype-xml.html">datatype-xml</a></li>
893
<li><a href="../modules/datatype-xml-format.html">datatype-xml-format</a></li>
895
<li><a href="../modules/datatype-xml-parse.html">datatype-xml-parse</a></li>
897
<li><a href="../modules/dd.html">dd</a></li>
899
<li><a href="../modules/dd-constrain.html">dd-constrain</a></li>
901
<li><a href="../modules/dd-ddm.html">dd-ddm</a></li>
903
<li><a href="../modules/dd-ddm-base.html">dd-ddm-base</a></li>
905
<li><a href="../modules/dd-ddm-drop.html">dd-ddm-drop</a></li>
907
<li><a href="../modules/dd-delegate.html">dd-delegate</a></li>
909
<li><a href="../modules/dd-drag.html">dd-drag</a></li>
911
<li><a href="../modules/dd-drop.html">dd-drop</a></li>
913
<li><a href="../modules/dd-drop-plugin.html">dd-drop-plugin</a></li>
915
<li><a href="../modules/dd-plugin.html">dd-plugin</a></li>
917
<li><a href="../modules/dd-proxy.html">dd-proxy</a></li>
919
<li><a href="../modules/dd-scroll.html">dd-scroll</a></li>
921
<li><a href="../modules/dial.html">dial</a></li>
923
<li><a href="../modules/dom.html">dom</a></li>
925
<li><a href="../modules/dom-base.html">dom-base</a></li>
927
<li><a href="../modules/dom-screen.html">dom-screen</a></li>
929
<li><a href="../modules/dom-style.html">dom-style</a></li>
931
<li><a href="../modules/dump.html">dump</a></li>
933
<li><a href="../modules/editor.html">editor</a></li>
935
<li><a href="../modules/editor-base.html">editor-base</a></li>
937
<li><a href="../modules/editor-bidi.html">editor-bidi</a></li>
939
<li><a href="../modules/editor-br.html">editor-br</a></li>
941
<li><a href="../modules/editor-lists.html">editor-lists</a></li>
943
<li><a href="../modules/editor-para.html">editor-para</a></li>
945
<li><a href="../modules/editor-para-base.html">editor-para-base</a></li>
947
<li><a href="../modules/editor-para-ie.html">editor-para-ie</a></li>
949
<li><a href="../modules/editor-tab.html">editor-tab</a></li>
951
<li><a href="../modules/escape.html">escape</a></li>
953
<li><a href="../modules/event.html">event</a></li>
955
<li><a href="../modules/event-base.html">event-base</a></li>
957
<li><a href="../modules/event-contextmenu.html">event-contextmenu</a></li>
959
<li><a href="../modules/event-custom.html">event-custom</a></li>
961
<li><a href="../modules/event-custom-base.html">event-custom-base</a></li>
963
<li><a href="../modules/event-custom-complex.html">event-custom-complex</a></li>
965
<li><a href="../modules/event-delegate.html">event-delegate</a></li>
967
<li><a href="../modules/event-flick.html">event-flick</a></li>
969
<li><a href="../modules/event-focus.html">event-focus</a></li>
971
<li><a href="../modules/event-gestures.html">event-gestures</a></li>
973
<li><a href="../modules/event-hover.html">event-hover</a></li>
975
<li><a href="../modules/event-key.html">event-key</a></li>
977
<li><a href="../modules/event-mouseenter.html">event-mouseenter</a></li>
979
<li><a href="../modules/event-mousewheel.html">event-mousewheel</a></li>
981
<li><a href="../modules/event-move.html">event-move</a></li>
983
<li><a href="../modules/event-outside.html">event-outside</a></li>
985
<li><a href="../modules/event-resize.html">event-resize</a></li>
987
<li><a href="../modules/event-simulate.html">event-simulate</a></li>
989
<li><a href="../modules/event-synthetic.html">event-synthetic</a></li>
991
<li><a href="../modules/event-touch.html">event-touch</a></li>
993
<li><a href="../modules/event-valuechange.html">event-valuechange</a></li>
995
<li><a href="../modules/exec-command.html">exec-command</a></li>
997
<li><a href="../modules/features.html">features</a></li>
999
<li><a href="../modules/file.html">file</a></li>
1001
<li><a href="../modules/file-flash.html">file-flash</a></li>
1003
<li><a href="../modules/file-html5.html">file-html5</a></li>
1005
<li><a href="../modules/frame.html">frame</a></li>
1007
<li><a href="../modules/get.html">get</a></li>
1009
<li><a href="../modules/get-nodejs.html">get-nodejs</a></li>
1011
<li><a href="../modules/graphics.html">graphics</a></li>
1013
<li><a href="../modules/handlebars.html">handlebars</a></li>
1015
<li><a href="../modules/handlebars-base.html">handlebars-base</a></li>
1017
<li><a href="../modules/handlebars-compiler.html">handlebars-compiler</a></li>
1019
<li><a href="../modules/highlight.html">highlight</a></li>
1021
<li><a href="../modules/highlight-accentfold.html">highlight-accentfold</a></li>
1023
<li><a href="../modules/highlight-base.html">highlight-base</a></li>
1025
<li><a href="../modules/history.html">history</a></li>
1027
<li><a href="../modules/history-base.html">history-base</a></li>
1029
<li><a href="../modules/history-hash.html">history-hash</a></li>
1031
<li><a href="../modules/history-hash-ie.html">history-hash-ie</a></li>
1033
<li><a href="../modules/history-html5.html">history-html5</a></li>
1035
<li><a href="../modules/imageloader.html">imageloader</a></li>
1037
<li><a href="../modules/intl.html">intl</a></li>
1039
<li><a href="../modules/io.html">io</a></li>
1041
<li><a href="../modules/io-base.html">io-base</a></li>
1043
<li><a href="../modules/io-form.html">io-form</a></li>
1045
<li><a href="../modules/io-queue.html">io-queue</a></li>
1047
<li><a href="../modules/io-upload-iframe.html">io-upload-iframe</a></li>
1049
<li><a href="../modules/io-xdr.html">io-xdr</a></li>
1051
<li><a href="../modules/json.html">json</a></li>
1053
<li><a href="../modules/json-parse.html">json-parse</a></li>
1055
<li><a href="../modules/json-stringify.html">json-stringify</a></li>
1057
<li><a href="../modules/jsonp.html">jsonp</a></li>
1059
<li><a href="../modules/jsonp-url.html">jsonp-url</a></li>
1061
<li><a href="../modules/loader.html">loader</a></li>
1063
<li><a href="../modules/loader-base.html">loader-base</a></li>
1065
<li><a href="../modules/matrix.html">matrix</a></li>
1067
<li><a href="../modules/model.html">model</a></li>
1069
<li><a href="../modules/model-list.html">model-list</a></li>
1071
<li><a href="../modules/node.html">node</a></li>
1073
<li><a href="../modules/node-base.html">node-base</a></li>
1075
<li><a href="../modules/node-core.html">node-core</a></li>
1077
<li><a href="../modules/node-data.html">node-data</a></li>
1079
<li><a href="../modules/node-deprecated.html">node-deprecated</a></li>
1081
<li><a href="../modules/node-event-delegate.html">node-event-delegate</a></li>
1083
<li><a href="../modules/node-event-html5.html">node-event-html5</a></li>
1085
<li><a href="../modules/node-event-simulate.html">node-event-simulate</a></li>
1087
<li><a href="../modules/node-flick.html">node-flick</a></li>
1089
<li><a href="../modules/node-focusmanager.html">node-focusmanager</a></li>
1091
<li><a href="../modules/node-load.html">node-load</a></li>
1093
<li><a href="../modules/node-menunav.html">node-menunav</a></li>
1095
<li><a href="../modules/node-pluginhost.html">node-pluginhost</a></li>
1097
<li><a href="../modules/node-screen.html">node-screen</a></li>
1099
<li><a href="../modules/node-style.html">node-style</a></li>
1101
<li><a href="../modules/oop.html">oop</a></li>
1103
<li><a href="../modules/overlay.html">overlay</a></li>
1105
<li><a href="../modules/panel.html">panel</a></li>
1107
<li><a href="../modules/parallel.html">parallel</a></li>
1109
<li><a href="../modules/pjax.html">pjax</a></li>
1111
<li><a href="../modules/pjax-base.html">pjax-base</a></li>
1113
<li><a href="../modules/pjax-plugin.html">pjax-plugin</a></li>
1115
<li><a href="../modules/plugin.html">plugin</a></li>
1117
<li><a href="../modules/pluginhost.html">pluginhost</a></li>
1119
<li><a href="../modules/pluginhost-base.html">pluginhost-base</a></li>
1121
<li><a href="../modules/pluginhost-config.html">pluginhost-config</a></li>
1123
<li><a href="../modules/profiler.html">profiler</a></li>
1125
<li><a href="../modules/querystring.html">querystring</a></li>
1127
<li><a href="../modules/querystring-parse.html">querystring-parse</a></li>
1129
<li><a href="../modules/querystring-parse-simple.html">querystring-parse-simple</a></li>
1131
<li><a href="../modules/querystring-stringify.html">querystring-stringify</a></li>
1133
<li><a href="../modules/querystring-stringify-simple.html">querystring-stringify-simple</a></li>
1135
<li><a href="../modules/queue-promote.html">queue-promote</a></li>
1137
<li><a href="../modules/range-slider.html">range-slider</a></li>
1139
<li><a href="../modules/recordset.html">recordset</a></li>
1141
<li><a href="../modules/recordset-base.html">recordset-base</a></li>
1143
<li><a href="../modules/recordset-filter.html">recordset-filter</a></li>
1145
<li><a href="../modules/recordset-indexer.html">recordset-indexer</a></li>
1147
<li><a href="../modules/recordset-sort.html">recordset-sort</a></li>
1149
<li><a href="../modules/resize.html">resize</a></li>
1151
<li><a href="../modules/resize-contrain.html">resize-contrain</a></li>
1153
<li><a href="../modules/resize-plugin.html">resize-plugin</a></li>
1155
<li><a href="../modules/resize-proxy.html">resize-proxy</a></li>
1157
<li><a href="../modules/rollup.html">rollup</a></li>
1159
<li><a href="../modules/router.html">router</a></li>
1161
<li><a href="../modules/scrollview.html">scrollview</a></li>
1163
<li><a href="../modules/scrollview-base.html">scrollview-base</a></li>
1165
<li><a href="../modules/scrollview-base-ie.html">scrollview-base-ie</a></li>
1167
<li><a href="../modules/scrollview-list.html">scrollview-list</a></li>
1169
<li><a href="../modules/scrollview-paginator.html">scrollview-paginator</a></li>
1171
<li><a href="../modules/scrollview-scrollbars.html">scrollview-scrollbars</a></li>
1173
<li><a href="../modules/selection.html">selection</a></li>
1175
<li><a href="../modules/selector-css2.html">selector-css2</a></li>
1177
<li><a href="../modules/selector-css3.html">selector-css3</a></li>
1179
<li><a href="../modules/selector-native.html">selector-native</a></li>
1181
<li><a href="../modules/shim-plugin.html">shim-plugin</a></li>
1183
<li><a href="../modules/slider.html">slider</a></li>
1185
<li><a href="../modules/slider-base.html">slider-base</a></li>
1187
<li><a href="../modules/slider-value-range.html">slider-value-range</a></li>
1189
<li><a href="../modules/sortable.html">sortable</a></li>
1191
<li><a href="../modules/sortable-scroll.html">sortable-scroll</a></li>
1193
<li><a href="../modules/stylesheet.html">stylesheet</a></li>
1195
<li><a href="../modules/substitute.html">substitute</a></li>
1197
<li><a href="../modules/swf.html">swf</a></li>
1199
<li><a href="../modules/swfdetect.html">swfdetect</a></li>
1201
<li><a href="../modules/tabview.html">tabview</a></li>
1203
<li><a href="../modules/test.html">test</a></li>
1205
<li><a href="../modules/test-console.html">test-console</a></li>
1207
<li><a href="../modules/text.html">text</a></li>
1209
<li><a href="../modules/text-accentfold.html">text-accentfold</a></li>
1211
<li><a href="../modules/text-wordbreak.html">text-wordbreak</a></li>
1213
<li><a href="../modules/transition.html">transition</a></li>
1215
<li><a href="../modules/uploader.html">uploader</a></li>
1217
<li><a href="../modules/uploader-deprecated.html">uploader-deprecated</a></li>
1219
<li><a href="../modules/uploader-flash.html">uploader-flash</a></li>
1221
<li><a href="../modules/uploader-html5.html">uploader-html5</a></li>
1223
<li><a href="../modules/uploader-queue.html">uploader-queue</a></li>
1225
<li><a href="../modules/view.html">view</a></li>
1227
<li><a href="../modules/view-node-map.html">view-node-map</a></li>
1229
<li><a href="../modules/widget.html">widget</a></li>
1231
<li><a href="../modules/widget-anim.html">widget-anim</a></li>
1233
<li><a href="../modules/widget-autohide.html">widget-autohide</a></li>
1235
<li><a href="../modules/widget-base.html">widget-base</a></li>
1237
<li><a href="../modules/widget-base-ie.html">widget-base-ie</a></li>
1239
<li><a href="../modules/widget-buttons.html">widget-buttons</a></li>
1241
<li><a href="../modules/widget-child.html">widget-child</a></li>
1243
<li><a href="../modules/widget-htmlparser.html">widget-htmlparser</a></li>
1245
<li><a href="../modules/widget-locale.html">widget-locale</a></li>
1247
<li><a href="../modules/widget-modality.html">widget-modality</a></li>
1249
<li><a href="../modules/widget-parent.html">widget-parent</a></li>
1251
<li><a href="../modules/widget-position.html">widget-position</a></li>
1253
<li><a href="../modules/widget-position-align.html">widget-position-align</a></li>
1255
<li><a href="../modules/widget-position-constrain.html">widget-position-constrain</a></li>
1257
<li><a href="../modules/widget-skin.html">widget-skin</a></li>
1259
<li><a href="../modules/widget-stack.html">widget-stack</a></li>
1261
<li><a href="../modules/widget-stdmod.html">widget-stdmod</a></li>
1263
<li><a href="../modules/widget-uievents.html">widget-uievents</a></li>
1265
<li><a href="../modules/yql.html">yql</a></li>
1267
<li><a href="../modules/yui.html">yui</a></li>
1269
<li><a href="../modules/yui-base.html">yui-base</a></li>
1271
<li><a href="../modules/yui-later.html">yui-later</a></li>
1273
<li><a href="../modules/yui-log.html">yui-log</a></li>
1275
<li><a href="../modules/yui-throttle.html">yui-throttle</a></li>
1277
<li><a href="../modules/yui3.html">yui3</a></li>
1286
<div class="yui3-u-3-4">
1287
<div id="api-options">
1289
<label for="api-show-inherited">
1290
<input type="checkbox" id="api-show-inherited" checked>
1294
<label for="api-show-protected">
1295
<input type="checkbox" id="api-show-protected">
1299
<label for="api-show-private">
1300
<input type="checkbox" id="api-show-private">
1306
<div class="apidocs">
1307
<div id="docs-main">
1308
<div class="content">
1309
<h1 class="file-heading">File: app/js/model.js</h1>
1312
<pre class="code prettyprint linenums">
1314
Attribute-based data model with APIs for getting, setting, validating, and
1315
syncing attribute values, as well as events for being notified of model changes.
1323
Attribute-based data model with APIs for getting, setting, validating, and
1324
syncing attribute values, as well as events for being notified of model changes.
1326
In most cases, you'll want to create your own subclass of `Y.Model` and
1327
customize it to meet your needs. In particular, the `sync()` and `validate()`
1328
methods are meant to be overridden by custom implementations. You may also want
1329
to override the `parse()` method to parse non-generic server responses.
1337
var GlobalEnv = YUI.namespace('Env.Model'),
1343
Fired when one or more attributes on this model are changed.
1346
@param {Object} changed Hash of change information for each attribute that
1347
changed. Each item in the hash has the following properties:
1348
@param {Any} changed.newVal New value of the attribute.
1349
@param {Any} changed.prevVal Previous value of the attribute.
1350
@param {String|null} changed.src Source of the change event, if any.
1352
EVT_CHANGE = 'change',
1355
Fired when an error occurs, such as when the model doesn't validate or when
1356
a sync layer response can't be parsed.
1359
@param {Any} error Error message, object, or exception generated by the
1360
error. Calling `toString()` on this should result in a meaningful error
1362
@param {String} src Source of the error. May be one of the following (or any
1363
custom error source defined by a Model subclass):
1365
* `load`: An error loading the model from a sync layer. The sync layer's
1366
response (if any) will be provided as the `response` property on the
1369
* `parse`: An error parsing a JSON response. The response in question will
1370
be provided as the `response` property on the event facade.
1372
* `save`: An error saving the model to a sync layer. The sync layer's
1373
response (if any) will be provided as the `response` property on the
1376
* `validate`: The model failed to validate. The attributes being validated
1377
will be provided as the `attributes` property on the event facade.
1379
EVT_ERROR = 'error',
1382
Fired after model attributes are loaded from a sync layer.
1385
@param {Object} parsed The parsed version of the sync layer's response to
1387
@param {any} response The sync layer's raw, unparsed response to the load
1391
EVT_LOAD = 'load',
1394
Fired after model attributes are saved to a sync layer.
1397
@param {Object} [parsed] The parsed version of the sync layer's response to
1398
the save request, if there was a response.
1399
@param {any} [response] The sync layer's raw, unparsed response to the save
1400
request, if there was one.
1403
EVT_SAVE = 'save';
1406
Model.superclass.constructor.apply(this, arguments);
1409
Y.Model = Y.extend(Model, Y.Base, {
1410
// -- Public Properties ----------------------------------------------------
1413
Hash of attributes that have changed since the last time this model was
1422
Name of the attribute to use as the unique id (or primary key) for this
1425
The default is `id`, but if your persistence layer uses a different name for
1426
the primary key (such as `_id` or `uid`), you can specify that here.
1428
The built-in `id` attribute will always be an alias for whatever attribute
1429
name you specify here, so getting and setting `id` will always behave the
1430
same as getting and setting your custom id attribute.
1432
@property idAttribute
1434
@default `'id'`
1436
idAttribute: 'id',
1439
Hash of attributes that were changed in the last `change` event. Each item
1440
in this hash is an object with the following properties:
1442
* `newVal`: The new value of the attribute after it changed.
1443
* `prevVal`: The old value of the attribute before it changed.
1444
* `src`: The source of the change, or `null` if no source was specified.
1446
@property lastChange
1452
Array of `ModelList` instances that contain this model.
1454
When a model is in one or more lists, the model's events will bubble up to
1455
those lists. You can subscribe to a model event on a list to be notified
1456
when any model in the list fires that event.
1458
This property is updated automatically when this model is added to or
1459
removed from a `ModelList` instance. You shouldn't alter it manually. When
1460
working with models in a list, you should always add and remove models using
1461
the list's `add()` and `remove()` methods.
1463
@example Subscribing to model events on a list:
1465
// Assuming `list` is an existing Y.ModelList instance.
1466
list.on('*:change', function (e) {
1467
// This function will be called whenever any model in the list
1468
// fires a `change` event.
1470
// `e.target` will refer to the model instance that fired the
1476
@default `[]`
1479
// -- Protected Properties -------------------------------------------------
1482
This tells `Y.Base` that it should create ad-hoc attributes for config
1483
properties passed to Model's constructor. This makes it possible to
1484
instantiate a model and set a bunch of attributes without having to subclass
1485
`Y.Model` and declare all those attributes first.
1487
@property _allowAdHocAttrs
1493
_allowAdHocAttrs: true,
1496
Total hack to allow us to identify Model instances without using
1497
`instanceof`, which won't work when the instance was created in another
1498
window or YUI sandbox.
1500
@property _isYUIModel
1508
// -- Lifecycle Methods ----------------------------------------------------
1509
initializer: function (config) {
1511
this.lastChange = {};
1515
// -- Public Methods -------------------------------------------------------
1518
Destroys this model instance and removes it from its containing lists, if
1521
The _callback_, if one is provided, will be called after the model is
1524
If `options.remove` is `true`, then this method delegates to the `sync()`
1525
method to delete the model from the persistence layer, which is an
1526
asynchronous action. In this case, the _callback_ (if provided) will be
1527
called after the sync layer indicates success or failure of the delete
1531
@param {Object} [options] Sync options. It's up to the custom sync
1532
implementation to determine what options it supports or requires, if
1534
@param {Boolean} [options.remove=false] If `true`, the model will be
1535
deleted via the sync layer in addition to the instance being destroyed.
1536
@param {callback} [callback] Called after the model has been destroyed (and
1537
deleted via the sync layer if `options.remove` is `true`).
1538
@param {Error|null} callback.err If an error occurred, this parameter will
1539
contain the error. Otherwise _err_ will be `null`.
1542
destroy: function (options, callback) {
1545
// Allow callback as only arg.
1546
if (typeof options === 'function') {
1551
self.onceAfter('destroy', function () {
1552
function finish(err) {
1554
YArray.each(self.lists.concat(), function (list) {
1555
list.remove(self, options);
1559
callback && callback.apply(null, arguments);
1562
if (options && (options.remove || options['delete'])) {
1563
self.sync('delete', options, finish);
1569
return Model.superclass.destroy.call(self);
1573
Returns a clientId string that's unique among all models on the current page
1574
(even models in other YUI instances). Uniqueness across pageviews is
1577
@method generateClientId
1578
@return {String} Unique clientId.
1580
generateClientId: function () {
1581
GlobalEnv.lastId || (GlobalEnv.lastId = 0);
1582
return this.constructor.NAME + '_' + (GlobalEnv.lastId += 1);
1586
Returns the value of the specified attribute.
1588
If the attribute's value is an object, _name_ may use dot notation to
1589
specify the path to a specific property within the object, and the value of
1590
that property will be returned.
1593
// Set the 'foo' attribute to an object.
1594
myModel.set('foo', {
1596
baz: 'quux'
1600
// Get the value of 'foo'.
1601
myModel.get('foo');
1602
// => {bar: {baz: 'quux'}}
1604
// Get the value of 'foo.bar.baz'.
1605
myModel.get('foo.bar.baz');
1606
// => 'quux'
1609
@param {String} name Attribute name or object property path.
1610
@return {Any} Attribute value, or `undefined` if the attribute doesn't
1614
// get() is defined by Y.Attribute.
1617
Returns an HTML-escaped version of the value of the specified string
1618
attribute. The value is escaped using `Y.Escape.html()`.
1621
@param {String} name Attribute name or object property path.
1622
@return {String} HTML-escaped attribute value.
1624
getAsHTML: function (name) {
1625
var value = this.get(name);
1626
return Y.Escape.html(Lang.isValue(value) ? String(value) : '');
1630
Returns a URL-encoded version of the value of the specified string
1631
attribute. The value is encoded using the native `encodeURIComponent()`
1635
@param {String} name Attribute name or object property path.
1636
@return {String} URL-encoded attribute value.
1638
getAsURL: function (name) {
1639
var value = this.get(name);
1640
return encodeURIComponent(Lang.isValue(value) ? String(value) : '');
1644
Returns `true` if any attribute of this model has been changed since the
1645
model was last saved.
1647
New models (models for which `isNew()` returns `true`) are implicitly
1648
considered to be "modified" until the first time they're saved.
1651
@return {Boolean} `true` if this model has changed since it was last saved,
1652
`false` otherwise.
1654
isModified: function () {
1655
return this.isNew() || !YObject.isEmpty(this.changed);
1659
Returns `true` if this model is "new", meaning it hasn't been saved since it
1662
Newness is determined by checking whether the model's `id` attribute has
1663
been set. An empty id is assumed to indicate a new model, whereas a
1664
non-empty id indicates a model that was either loaded or has been saved
1665
since it was created.
1668
@return {Boolean} `true` if this model is new, `false` otherwise.
1670
isNew: function () {
1671
return !Lang.isValue(this.get('id'));
1675
Loads this model from the server.
1677
This method delegates to the `sync()` method to perform the actual load
1678
operation, which is an asynchronous action. Specify a _callback_ function to
1679
be notified of success or failure.
1681
A successful load operation will fire a `load` event, while an unsuccessful
1682
load operation will fire an `error` event with the `src` value "load".
1684
If the load operation succeeds and one or more of the loaded attributes
1685
differ from this model's current attributes, a `change` event will be fired.
1688
@param {Object} [options] Options to be passed to `sync()` and to `set()`
1689
when setting the loaded attributes. It's up to the custom sync
1690
implementation to determine what options it supports or requires, if any.
1691
@param {callback} [callback] Called when the sync operation finishes.
1692
@param {Error|null} callback.err If an error occurred, this parameter will
1693
contain the error. If the sync operation succeeded, _err_ will be
1695
@param {Any} callback.response The server's response. This value will
1696
be passed to the `parse()` method, which is expected to parse it and
1697
return an attribute hash.
1700
load: function (options, callback) {
1703
// Allow callback as only arg.
1704
if (typeof options === 'function') {
1709
options || (options = {});
1711
self.sync('read', options, function (err, response) {
1721
facade.src = 'load';
1723
self.fire(EVT_ERROR, facade);
1725
// Lazy publish.
1726
if (!self._loadEvent) {
1727
self._loadEvent = self.publish(EVT_LOAD, {
1732
parsed = facade.parsed = self.parse(response);
1734
self.setAttrs(parsed, options);
1737
self.fire(EVT_LOAD, facade);
1740
callback && callback.apply(null, arguments);
1747
Called to parse the _response_ when the model is loaded from the server.
1748
This method receives a server _response_ and is expected to return an
1751
The default implementation assumes that _response_ is either an attribute
1752
hash or a JSON string that can be parsed into an attribute hash. If
1753
_response_ is a JSON string and either `Y.JSON` or the native `JSON` object
1754
are available, it will be parsed automatically. If a parse error occurs, an
1755
`error` event will be fired and the model will not be updated.
1757
You may override this method to implement custom parsing logic if necessary.
1760
@param {Any} response Server response.
1761
@return {Object} Attribute hash.
1763
parse: function (response) {
1764
if (typeof response === 'string') {
1766
return Y.JSON.parse(response);
1768
this.fire(EVT_ERROR, {
1771
src : 'parse'
1782
Saves this model to the server.
1784
This method delegates to the `sync()` method to perform the actual save
1785
operation, which is an asynchronous action. Specify a _callback_ function to
1786
be notified of success or failure.
1788
A successful save operation will fire a `save` event, while an unsuccessful
1789
save operation will fire an `error` event with the `src` value "save".
1791
If the save operation succeeds and one or more of the attributes returned in
1792
the server's response differ from this model's current attributes, a
1793
`change` event will be fired.
1796
@param {Object} [options] Options to be passed to `sync()` and to `set()`
1797
when setting synced attributes. It's up to the custom sync implementation
1798
to determine what options it supports or requires, if any.
1799
@param {Function} [callback] Called when the sync operation finishes.
1800
@param {Error|null} callback.err If an error occurred or validation
1801
failed, this parameter will contain the error. If the sync operation
1802
succeeded, _err_ will be `null`.
1803
@param {Any} callback.response The server's response. This value will
1804
be passed to the `parse()` method, which is expected to parse it and
1805
return an attribute hash.
1808
save: function (options, callback) {
1811
// Allow callback as only arg.
1812
if (typeof options === 'function') {
1817
options || (options = {});
1819
self._validate(self.toJSON(), function (err) {
1821
callback && callback.call(null, err);
1825
self.sync(self.isNew() ? 'create' : 'update', options, function (err, response) {
1835
facade.src = 'save';
1837
self.fire(EVT_ERROR, facade);
1839
// Lazy publish.
1840
if (!self._saveEvent) {
1841
self._saveEvent = self.publish(EVT_SAVE, {
1847
parsed = facade.parsed = self.parse(response);
1848
self.setAttrs(parsed, options);
1852
self.fire(EVT_SAVE, facade);
1855
callback && callback.apply(null, arguments);
1863
Sets the value of a single attribute. If model validation fails, the
1864
attribute will not be set and an `error` event will be fired.
1866
Use `setAttrs()` to set multiple attributes at once.
1869
model.set('foo', 'bar');
1872
@param {String} name Attribute name or object property path.
1873
@param {any} value Value to set.
1874
@param {Object} [options] Data to be mixed into the event facade of the
1875
`change` event(s) for these attributes.
1876
@param {Boolean} [options.silent=false] If `true`, no `change` event will
1880
set: function (name, value, options) {
1881
var attributes = {};
1882
attributes[name] = value;
1884
return this.setAttrs(attributes, options);
1888
Sets the values of multiple attributes at once. If model validation fails,
1889
the attributes will not be set and an `error` event will be fired.
1893
foo: 'bar',
1894
baz: 'quux'
1898
@param {Object} attributes Hash of attribute names and values to set.
1899
@param {Object} [options] Data to be mixed into the event facade of the
1900
`change` event(s) for these attributes.
1901
@param {Boolean} [options.silent=false] If `true`, no `change` event will
1905
setAttrs: function (attributes, options) {
1906
var idAttribute = this.idAttribute,
1907
changed, e, key, lastChange, transaction;
1909
options || (options = {});
1910
transaction = options._transaction = {};
1912
// When a custom id attribute is in use, always keep the default `id`
1913
// attribute in sync.
1914
if (idAttribute !== 'id') {
1915
// So we don't modify someone else's object.
1916
attributes = Y.merge(attributes);
1918
if (YObject.owns(attributes, idAttribute)) {
1919
attributes.id = attributes[idAttribute];
1920
} else if (YObject.owns(attributes, 'id')) {
1921
attributes[idAttribute] = attributes.id;
1925
for (key in attributes) {
1926
if (YObject.owns(attributes, key)) {
1927
this._setAttr(key, attributes[key], options);
1931
if (!YObject.isEmpty(transaction)) {
1932
changed = this.changed;
1933
lastChange = this.lastChange = {};
1935
for (key in transaction) {
1936
if (YObject.owns(transaction, key)) {
1937
e = transaction[key];
1939
changed[key] = e.newVal;
1949
if (!options.silent) {
1950
// Lazy publish for the change event.
1951
if (!this._changeEvent) {
1952
this._changeEvent = this.publish(EVT_CHANGE, {
1957
this.fire(EVT_CHANGE, Y.merge(options, {changed: lastChange}));
1965
Override this method to provide a custom persistence implementation for this
1966
model. The default just calls the callback without actually doing anything.
1968
This method is called internally by `load()`, `save()`, and `destroy()`.
1971
@param {String} action Sync action to perform. May be one of the following:
1973
* `create`: Store a newly-created model for the first time.
1974
* `delete`: Delete an existing model.
1975
* `read` : Load an existing model.
1976
* `update`: Update an existing model.
1978
@param {Object} [options] Sync options. It's up to the custom sync
1979
implementation to determine what options it supports or requires, if any.
1980
@param {Function} [callback] Called when the sync operation finishes.
1981
@param {Error|null} callback.err If an error occurred, this parameter will
1982
contain the error. If the sync operation succeeded, _err_ will be
1984
@param {Any} [callback.response] The server's response.
1986
sync: function (/* action, options, callback */) {
1987
var callback = YArray(arguments, 0, true).pop();
1989
if (typeof callback === 'function') {
1995
Returns a copy of this model's attributes that can be passed to
1996
`Y.JSON.stringify()` or used for other nefarious purposes.
1998
The `clientId` attribute is not included in the returned object.
2000
If you've specified a custom attribute name in the `idAttribute` property,
2001
the default `id` attribute will not be included in the returned object.
2003
Note: The ECMAScript 5 specification states that objects may implement a
2004
`toJSON` method to provide an alternate object representation to serialize
2005
when passed to `JSON.stringify(obj)`. This allows class instances to be
2006
serialized as if they were plain objects. This is why Model's `toJSON`
2007
returns an object, not a JSON string.
2009
See <http://es5.github.com/#x15.12.3> for details.
2012
@return {Object} Copy of this model's attributes.
2014
toJSON: function () {
2015
var attrs = this.getAttrs();
2017
delete attrs.clientId;
2018
delete attrs.destroyed;
2019
delete attrs.initialized;
2021
if (this.idAttribute !== 'id') {
2029
Reverts the last change to the model.
2031
If an _attrNames_ array is provided, then only the named attributes will be
2032
reverted (and only if they were modified in the previous change). If no
2033
_attrNames_ array is provided, then all changed attributes will be reverted
2034
to their previous values.
2036
Note that only one level of undo is available: from the current state to the
2037
previous state. If `undo()` is called when no previous state is available,
2038
it will simply do nothing.
2041
@param {Array} [attrNames] Array of specific attribute names to revert. If
2042
not specified, all attributes modified in the last change will be
2044
@param {Object} [options] Data to be mixed into the event facade of the
2045
change event(s) for these attributes.
2046
@param {Boolean} [options.silent=false] If `true`, no `change` event will
2050
undo: function (attrNames, options) {
2051
var lastChange = this.lastChange,
2052
idAttribute = this.idAttribute,
2056
attrNames || (attrNames = YObject.keys(lastChange));
2058
YArray.each(attrNames, function (name) {
2059
if (YObject.owns(lastChange, name)) {
2060
// Don't generate a double change for custom id attributes.
2061
name = name === idAttribute ? 'id' : name;
2064
toUndo[name] = lastChange[name].prevVal;
2068
return needUndo ? this.setAttrs(toUndo, options) : this;
2072
Override this method to provide custom validation logic for this model.
2074
While attribute-specific validators can be used to validate individual
2075
attributes, this method gives you a hook to validate a hash of all
2076
attributes before the model is saved. This method is called automatically
2077
before `save()` takes any action. If validation fails, the `save()` call
2080
In your validation method, call the provided `callback` function with no
2081
arguments to indicate success. To indicate failure, pass a single argument,
2082
which may contain an error message, an array of error messages, or any other
2083
value. This value will be passed along to the `error` event.
2087
model.validate = function (attrs, callback) {
2088
if (attrs.pie !== true) {
2089
// No pie?! Invalid!
2090
callback('Must provide pie.');
2094
// Success!
2099
@param {Object} attrs Attribute hash containing all model attributes to
2101
@param {Function} callback Validation callback. Call this function when your
2102
validation logic finishes. To trigger a validation failure, pass any
2103
value as the first argument to the callback (ideally a meaningful
2104
validation error of some kind).
2106
@param {Any} [callback.err] Validation error. Don't provide this
2107
argument if validation succeeds. If validation fails, set this to an
2108
error message or some other meaningful value. It will be passed
2109
along to the resulting `error` event.
2111
validate: function (attrs, callback) {
2112
callback && callback();
2115
// -- Protected Methods ----------------------------------------------------
2118
Duckpunches the `addAttr` method provided by `Y.Attribute` to keep the
2119
`id` attribute’s value and a custom id attribute’s (if provided) value
2120
in sync when adding the attributes to the model instance object.
2122
Marked as protected to hide it from Model's public API docs, even though
2123
this is a public method in Attribute.
2126
@param {String} name The name of the attribute.
2127
@param {Object} config An object with attribute configuration property/value
2128
pairs, specifying the configuration for the attribute.
2129
@param {Boolean} lazy (optional) Whether or not to add this attribute lazily
2130
(on the first call to get/set).
2131
@return {Object} A reference to the host object.
2135
addAttr: function (name, config, lazy) {
2136
var idAttribute = this.idAttribute,
2139
if (idAttribute && name === idAttribute) {
2140
idAttrCfg = this._isLazyAttr('id') || this._getAttrCfg('id');
2141
id = config.value === config.defaultValue ? null : config.value;
2143
if (!Lang.isValue(id)) {
2144
// Hunt for the id value.
2145
id = idAttrCfg.value === idAttrCfg.defaultValue ? null : idAttrCfg.value;
2147
if (!Lang.isValue(id)) {
2148
// No id value provided on construction, check defaults.
2149
id = Lang.isValue(config.defaultValue) ?
2150
config.defaultValue :
2151
idAttrCfg.defaultValue;
2157
// Make sure `id` is in sync.
2158
if (idAttrCfg.value !== id) {
2159
idAttrCfg.value = id;
2161
if (this._isLazyAttr('id')) {
2162
this._state.add('id', 'lazy', idAttrCfg);
2164
this._state.add('id', 'value', id);
2169
return Model.superclass.addAttr.apply(this, arguments);
2173
Calls the public, overridable `validate()` method and fires an `error` event
2174
if validation fails.
2177
@param {Object} attributes Attribute hash.
2178
@param {Function} callback Validation callback.
2179
@param {Any} [callback.err] Value on failure, non-value on success.
2182
_validate: function (attributes, callback) {
2185
function handler(err) {
2186
if (Lang.isValue(err)) {
2187
// Validation failed. Fire an error.
2188
self.fire(EVT_ERROR, {
2189
attributes: attributes,
2191
src : 'validate'
2201
if (self.validate.length === 1) {
2202
// Backcompat for 3.4.x-style synchronous validate() functions that
2203
// don't take a callback argument.
2204
Y.log('Synchronous validate() methods are deprecated since YUI 3.5.0.', 'warn', 'Model');
2205
handler(self.validate(attributes, handler));
2207
self.validate(attributes, handler);
2211
// -- Protected Event Handlers ---------------------------------------------
2214
Duckpunches the `_defAttrChangeFn()` provided by `Y.Attribute` so we can
2215
have a single global notification when a change event occurs.
2217
@method _defAttrChangeFn
2218
@param {EventFacade} e
2221
_defAttrChangeFn: function (e) {
2222
var attrName = e.attrName;
2224
if (!this._setAttrVal(attrName, e.subAttrName, e.prevVal, e.newVal)) {
2225
Y.log('State not updated and stopImmediatePropagation called for attribute: ' + attrName + ' , value:' + e.newVal, 'warn', 'attribute');
2226
// Prevent "after" listeners from being invoked since nothing changed.
2227
e.stopImmediatePropagation();
2229
e.newVal = this.get(attrName);
2231
if (e._transaction) {
2232
e._transaction[attrName] = e;
2237
NAME: 'model',
2241
A client-only identifier for this model.
2243
Like the `id` attribute, `clientId` may be used to retrieve model
2244
instances from lists. Unlike the `id` attribute, `clientId` is
2245
automatically generated, and is only intended to be used on the client
2246
during the current pageview.
2253
valueFn : 'generateClientId',
2258
A unique identifier for this model. Among other things, this id may be
2259
used to retrieve model instances from lists, so it should be unique.
2261
If the id is empty, this model instance is assumed to represent a new
2262
item that hasn't yet been saved.
2264
If you would prefer to use a custom attribute as this model's id instead
2265
of using the `id` attribute (for example, maybe you'd rather use `_id`
2266
or `uid` as the primary id), you may set the `idAttribute` property to
2267
the name of your custom id attribute. The `id` attribute will then
2268
act as an alias for your custom attribute.
2271
@type String|Number|null
2272
@default `null`
2287
<script src="../assets/vendor/prettify/prettify-min.js"></script>
2288
<script>prettyPrint();</script>
2289
<script src="../assets/js/yui-prettify.js"></script>
2290
<script src="../assets/../api.js"></script>
2291
<script src="../assets/js/api-filter.js"></script>
2292
<script src="../assets/js/api-list.js"></script>
2293
<script src="../assets/js/api-search.js"></script>
2294
<script src="../assets/js/apidocs.js"></script>