5
<title>datatable/js/sort.js - YUI 3</title>
6
<link rel="stylesheet" href="http://yui.yahooapis.com/3.5.0pr4/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.0pr4/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.0</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.Plugin.DDWindowScroll.html">DD.Plugin.DDWindowScroll</a></li>
233
<li><a href="../classes/DD.Scroll.html">DD.Scroll</a></li>
235
<li><a href="../classes/Dial.html">Dial</a></li>
237
<li><a href="../classes/Do.html">Do</a></li>
239
<li><a href="../classes/Do.AlterArgs.html">Do.AlterArgs</a></li>
241
<li><a href="../classes/Do.AlterReturn.html">Do.AlterReturn</a></li>
243
<li><a href="../classes/Do.Error.html">Do.Error</a></li>
245
<li><a href="../classes/Do.Halt.html">Do.Halt</a></li>
247
<li><a href="../classes/Do.Method.html">Do.Method</a></li>
249
<li><a href="../classes/Do.Prevent.html">Do.Prevent</a></li>
251
<li><a href="../classes/DOM.html">DOM</a></li>
253
<li><a href="../classes/DOMEventFacade.html">DOMEventFacade</a></li>
255
<li><a href="../classes/Drawing.html">Drawing</a></li>
257
<li><a href="../classes/Easing.html">Easing</a></li>
259
<li><a href="../classes/EditorBase.html">EditorBase</a></li>
261
<li><a href="../classes/EditorSelection.html">EditorSelection</a></li>
263
<li><a href="../classes/Ellipse.html">Ellipse</a></li>
265
<li><a href="../classes/EllipseGroup.html">EllipseGroup</a></li>
267
<li><a href="../classes/Escape.html">Escape</a></li>
269
<li><a href="../classes/Event.html">Event</a></li>
271
<li><a href="../classes/EventFacade.html">EventFacade</a></li>
273
<li><a href="../classes/EventHandle.html">EventHandle</a></li>
275
<li><a href="../classes/EventTarget.html">EventTarget</a></li>
277
<li><a href="../classes/ExecCommand.html">ExecCommand</a></li>
279
<li><a href="../classes/Features.html">Features</a></li>
281
<li><a href="../classes/File.html">File</a></li>
283
<li><a href="../classes/FileFlash.html">FileFlash</a></li>
285
<li><a href="../classes/FileHTML5.html">FileHTML5</a></li>
287
<li><a href="../classes/Fills.html">Fills</a></li>
289
<li><a href="../classes/Frame.html">Frame</a></li>
291
<li><a href="../classes/Get.html">Get</a></li>
293
<li><a href="../classes/Get.Transaction.html">Get.Transaction</a></li>
295
<li><a href="../classes/GetNodeJS.html">GetNodeJS</a></li>
297
<li><a href="../classes/Graph.html">Graph</a></li>
299
<li><a href="../classes/Graphic.html">Graphic</a></li>
301
<li><a href="../classes/GraphicBase.html">GraphicBase</a></li>
303
<li><a href="../classes/Gridlines.html">Gridlines</a></li>
305
<li><a href="../classes/GroupCircle.html">GroupCircle</a></li>
307
<li><a href="../classes/GroupDiamond.html">GroupDiamond</a></li>
309
<li><a href="../classes/GroupRect.html">GroupRect</a></li>
311
<li><a href="../classes/Handlebars.html">Handlebars</a></li>
313
<li><a href="../classes/Highlight.html">Highlight</a></li>
315
<li><a href="../classes/Histogram.html">Histogram</a></li>
317
<li><a href="../classes/HistoryBase.html">HistoryBase</a></li>
319
<li><a href="../classes/HistoryHash.html">HistoryHash</a></li>
321
<li><a href="../classes/HistoryHTML5.html">HistoryHTML5</a></li>
323
<li><a href="../classes/HorizontalLegendLayout.html">HorizontalLegendLayout</a></li>
325
<li><a href="../classes/ImgLoadGroup.html">ImgLoadGroup</a></li>
327
<li><a href="../classes/ImgLoadImgObj.html">ImgLoadImgObj</a></li>
329
<li><a href="../classes/Intl.html">Intl</a></li>
331
<li><a href="../classes/IO.html">IO</a></li>
333
<li><a href="../classes/json.html">json</a></li>
335
<li><a href="../classes/JSONPRequest.html">JSONPRequest</a></li>
337
<li><a href="../classes/Lang.html">Lang</a></li>
339
<li><a href="../classes/LeftAxisLayout.html">LeftAxisLayout</a></li>
341
<li><a href="../classes/Lines.html">Lines</a></li>
343
<li><a href="../classes/LineSeries.html">LineSeries</a></li>
345
<li><a href="../classes/Loader.html">Loader</a></li>
347
<li><a href="../classes/MarkerSeries.html">MarkerSeries</a></li>
349
<li><a href="../classes/Matrix.html">Matrix</a></li>
351
<li><a href="../classes/Model.html">Model</a></li>
353
<li><a href="../classes/ModelList.html">ModelList</a></li>
355
<li><a href="../classes/Node.html">Node</a></li>
357
<li><a href="../classes/NodeList.html">NodeList</a></li>
359
<li><a href="../classes/NumericAxis.html">NumericAxis</a></li>
361
<li><a href="../classes/Object.html">Object</a></li>
363
<li><a href="../classes/Overlay.html">Overlay</a></li>
365
<li><a href="../classes/Panel.html">Panel</a></li>
367
<li><a href="../classes/Parallel.html">Parallel</a></li>
369
<li><a href="../classes/Path.html">Path</a></li>
371
<li><a href="../classes/PieChart.html">PieChart</a></li>
373
<li><a href="../classes/PieSeries.html">PieSeries</a></li>
375
<li><a href="../classes/Pjax.html">Pjax</a></li>
377
<li><a href="../classes/PjaxBase.html">PjaxBase</a></li>
379
<li><a href="../classes/Plots.html">Plots</a></li>
381
<li><a href="../classes/Plugin.Align.html">Plugin.Align</a></li>
383
<li><a href="../classes/Plugin.AutoComplete.html">Plugin.AutoComplete</a></li>
385
<li><a href="../classes/Plugin.Base.html">Plugin.Base</a></li>
387
<li><a href="../classes/Plugin.Cache.html">Plugin.Cache</a></li>
389
<li><a href="../classes/Plugin.CalendarNavigator.html">Plugin.CalendarNavigator</a></li>
391
<li><a href="../classes/Plugin.ConsoleFilters.html">Plugin.ConsoleFilters</a></li>
393
<li><a href="../classes/Plugin.CreateLinkBase.html">Plugin.CreateLinkBase</a></li>
395
<li><a href="../classes/Plugin.DataTableDataSource.html">Plugin.DataTableDataSource</a></li>
397
<li><a href="../classes/Plugin.DDConstrained.html">Plugin.DDConstrained</a></li>
399
<li><a href="../classes/Plugin.DDNodeScroll.html">Plugin.DDNodeScroll</a></li>
401
<li><a href="../classes/Plugin.DDProxy.html">Plugin.DDProxy</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.html">Test</a></li>
559
<li><a href="../classes/Test.ArrayAssert.html">Test.ArrayAssert</a></li>
561
<li><a href="../classes/Test.Assert.html">Test.Assert</a></li>
563
<li><a href="../classes/Test.AssertionError.html">Test.AssertionError</a></li>
565
<li><a href="../classes/Test.ComparisonFailure.html">Test.ComparisonFailure</a></li>
567
<li><a href="../classes/Test.Console.html">Test.Console</a></li>
569
<li><a href="../classes/Test.CoverageFormat.CoverageFormat.html">Test.CoverageFormat.CoverageFormat</a></li>
571
<li><a href="../classes/Test.DateAssert.html">Test.DateAssert</a></li>
573
<li><a href="../classes/Test.EventTarget.html">Test.EventTarget</a></li>
575
<li><a href="../classes/Test.Mock.Mock.html">Test.Mock.Mock</a></li>
577
<li><a href="../classes/Test.Mock.Value.html">Test.Mock.Value</a></li>
579
<li><a href="../classes/Test.ObjectAssert.html">Test.ObjectAssert</a></li>
581
<li><a href="../classes/Test.Reporter.html">Test.Reporter</a></li>
583
<li><a href="../classes/Test.Results.html">Test.Results</a></li>
585
<li><a href="../classes/Test.Runner.html">Test.Runner</a></li>
587
<li><a href="../classes/Test.ShouldError.html">Test.ShouldError</a></li>
589
<li><a href="../classes/Test.ShouldFail.html">Test.ShouldFail</a></li>
591
<li><a href="../classes/Test.TestCase.html">Test.TestCase</a></li>
593
<li><a href="../classes/Test.TestFormat.html">Test.TestFormat</a></li>
595
<li><a href="../classes/Test.TestNode.html">Test.TestNode</a></li>
597
<li><a href="../classes/Test.TestRunner.html">Test.TestRunner</a></li>
599
<li><a href="../classes/Test.TestSuite.html">Test.TestSuite</a></li>
601
<li><a href="../classes/Test.UnexpectedError.html">Test.UnexpectedError</a></li>
603
<li><a href="../classes/Test.UnexpectedValue.html">Test.UnexpectedValue</a></li>
605
<li><a href="../classes/Test.Wait.html">Test.Wait</a></li>
607
<li><a href="../classes/Text.AccentFold.html">Text.AccentFold</a></li>
609
<li><a href="../classes/Text.WordBreak.html">Text.WordBreak</a></li>
611
<li><a href="../classes/TimeAxis.html">TimeAxis</a></li>
613
<li><a href="../classes/ToggleButton.html">ToggleButton</a></li>
615
<li><a href="../classes/TopAxisLayout.html">TopAxisLayout</a></li>
617
<li><a href="../classes/Transition.html">Transition</a></li>
619
<li><a href="../classes/UA.html">UA</a></li>
621
<li><a href="../classes/Uploader.html">Uploader</a></li>
623
<li><a href="../classes/Uploader.Queue.html">Uploader.Queue</a></li>
625
<li><a href="../classes/UploaderFlash.html">UploaderFlash</a></li>
627
<li><a href="../classes/UploaderHTML5.html">UploaderHTML5</a></li>
629
<li><a href="../classes/ValueChange.html">ValueChange</a></li>
631
<li><a href="../classes/VerticalLegendLayout.html">VerticalLegendLayout</a></li>
633
<li><a href="../classes/View.html">View</a></li>
635
<li><a href="../classes/View.NodeMap.html">View.NodeMap</a></li>
637
<li><a href="../classes/VMLCircle.html">VMLCircle</a></li>
639
<li><a href="../classes/VMLDrawing.html">VMLDrawing</a></li>
641
<li><a href="../classes/VMLEllipse.html">VMLEllipse</a></li>
643
<li><a href="../classes/VMLGraphic.html">VMLGraphic</a></li>
645
<li><a href="../classes/VMLPath.html">VMLPath</a></li>
647
<li><a href="../classes/VMLPieSlice.html">VMLPieSlice</a></li>
649
<li><a href="../classes/VMLRect.html">VMLRect</a></li>
651
<li><a href="../classes/VMLShape.html">VMLShape</a></li>
653
<li><a href="../classes/Widget.html">Widget</a></li>
655
<li><a href="../classes/WidgetAutohide.html">WidgetAutohide</a></li>
657
<li><a href="../classes/WidgetButtons.html">WidgetButtons</a></li>
659
<li><a href="../classes/WidgetChild.html">WidgetChild</a></li>
661
<li><a href="../classes/WidgetModality.html">WidgetModality</a></li>
663
<li><a href="../classes/WidgetParent.html">WidgetParent</a></li>
665
<li><a href="../classes/WidgetPosition.html">WidgetPosition</a></li>
667
<li><a href="../classes/WidgetPositionAlign.html">WidgetPositionAlign</a></li>
669
<li><a href="../classes/WidgetPositionConstrain.html">WidgetPositionConstrain</a></li>
671
<li><a href="../classes/WidgetStack.html">WidgetStack</a></li>
673
<li><a href="../classes/WidgetStdMod.html">WidgetStdMod</a></li>
675
<li><a href="../classes/YQL.html">YQL</a></li>
677
<li><a href="../classes/YQLRequest.html">YQLRequest</a></li>
679
<li><a href="../classes/YUI.html">YUI</a></li>
681
<li><a href="../classes/YUI~substitute.html">YUI~substitute</a></li>
685
<ul id="api-modules" class="apis modules">
687
<li><a href="../modules/align-plugin.html">align-plugin</a></li>
689
<li><a href="../modules/anim.html">anim</a></li>
691
<li><a href="../modules/anim-base.html">anim-base</a></li>
693
<li><a href="../modules/anim-color.html">anim-color</a></li>
695
<li><a href="../modules/anim-curve.html">anim-curve</a></li>
697
<li><a href="../modules/anim-easing.html">anim-easing</a></li>
699
<li><a href="../modules/anim-node-plugin.html">anim-node-plugin</a></li>
701
<li><a href="../modules/anim-scroll.html">anim-scroll</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: datatable/js/sort.js</h1>
1312
<pre class="code prettyprint linenums">
1314
Adds support for sorting the table data by API methods `table.sort(...)` or
1315
`table.toggleSort(...)` or by clicking on column headers in the rendered UI.
1318
@submodule datatable-sort
1322
isBoolean = YLang.isBoolean,
1323
isString = YLang.isString,
1324
isArray = YLang.isArray,
1325
isObject = YLang.isObject,
1339
_API docs for this extension are included in the DataTable class._
1341
This DataTable class extension adds support for sorting the table data by API
1342
methods `table.sort(...)` or `table.toggleSort(...)` or by clicking on column
1343
headers in the rendered UI.
1345
Sorting by the API is enabled automatically when this module is `use()`d. To
1346
enable UI triggered sorting, set the DataTable's `sortable` attribute to
1349
<pre><code>
1350
var table = new Y.DataTable({
1351
columns: [ 'id', 'username', 'name', 'birthdate' ],
1356
table.render('#table');
1357
</code></pre>
1359
Setting `sortable` to `true` will enable UI sorting for all columns. To enable
1360
UI sorting for certain columns only, set `sortable` to an array of column keys,
1361
or just add `sortable: true` to the respective column configuration objects.
1362
This uses the default setting of `sortable: auto` for the DataTable instance.
1364
<pre><code>
1365
var table = new Y.DataTable({
1368
{ key: 'username', sortable: true },
1369
{ key: 'name', sortable: true },
1370
{ key: 'birthdate', sortable: true }
1373
// sortable: 'auto' is the default
1377
var table = new Y.DataTable({
1378
columns: [ 'id', 'username', 'name', 'birthdate' ],
1380
sortable: [ 'username', 'name', 'birthdate' ]
1382
</code></pre>
1384
To disable UI sorting for all columns, set `sortable` to `false`. This still
1385
permits sorting via the API methods.
1387
As new records are inserted into the table's `data` ModelList, they will be inserted at the correct index to preserve the sort order.
1389
The current sort order is stored in the `sortBy` attribute. Assigning this value at instantiation will automatically sort your data.
1391
Sorting is done by a simple value comparison using &lt; and &gt; on the field
1392
value. If you need custom sorting, add a sort function in the column's
1393
`sortFn` property. Columns whose content is generated by formatters, but don't
1394
relate to a single `key`, require a `sortFn` to be sortable.
1396
<pre><code>
1397
function nameSort(a, b, desc) {
1398
var aa = a.get('lastName') + a.get('firstName'),
1399
bb = a.get('lastName') + b.get('firstName'),
1400
order = (aa > bb) ? 1 : -(aa < bb);
1402
return desc ? -order : order;
1405
var table = new Y.DataTable({
1406
columns: [ 'id', 'username', { key: name, sortFn: nameSort }, 'birthdate' ],
1408
sortable: [ 'username', 'name', 'birthdate' ]
1410
</code></pre>
1412
See the user guide for more details.
1414
@class DataTable.Sortable
1418
function Sortable() {}
1421
// Which columns in the UI should suggest and respond to sorting interaction
1422
// pass an empty array if no UI columns should show sortable, but you want the
1423
// table.sort(...) API
1425
Controls which column headers can trigger sorting by user clicks.
1427
Acceptable values are:
1429
* "auto" - (default) looks for `sortable: true` in the column configurations
1430
* `true` - all columns are enabled
1431
* `false - no UI sortable is enabled
1432
* {String[]} - array of key names to give sortable headers
1435
@type {String|String[]|Boolean}
1436
@default "auto"
1440
value: 'auto',
1441
validator: '_validateSortable'
1445
The current sort configuration to maintain in the data.
1447
Accepts column `key` strings or objects with a single property, the column
1448
`key`, with a value of 1, -1, "asc", or "desc". E.g. `{ username: 'asc'
1449
}`. String values are assumed to be ascending.
1451
Example values would be:
1453
* `"username"` - sort by the data's `username` field or the `key`
1454
associated to a column with that `name`.
1455
* `{ username: "desc" }` - sort by `username` in descending order.
1456
Alternately, use values "asc", 1 (same as "asc"), or -1 (same as "desc").
1457
* `["lastName", "firstName"]` - ascending sort by `lastName`, but for
1458
records with the same `lastName`, ascending subsort by `firstName`.
1459
Array can have as many items as you want.
1460
* `[{ lastName: -1 }, "firstName"]` - descending sort by `lastName`,
1461
ascending subsort by `firstName`. Mixed types are ok.
1464
@type {String|String[]|Object|Object[]}
1468
validator: '_validateSortBy',
1469
getter: '_getSortBy'
1473
Strings containing language for sorting tooltips.
1477
@default (strings for current lang configured in the YUI instance config)
1483
Y.mix(Sortable.prototype, {
1486
Sort the data in the `data` ModelList and refresh the table with the new
1489
Acceptable values for `fields` are `key` strings or objects with a single
1490
property, the column `key`, with a value of 1, -1, "asc", or "desc". E.g.
1491
`{ username: 'asc' }`. String values are assumed to be ascending.
1493
Example values would be:
1495
* `"username"` - sort by the data's `username` field or the `key`
1496
associated to a column with that `name`.
1497
* `{ username: "desc" }` - sort by `username` in descending order.
1498
Alternately, use values "asc", 1 (same as "asc"), or -1 (same as "desc").
1499
* `["lastName", "firstName"]` - ascending sort by `lastName`, but for
1500
records with the same `lastName`, ascending subsort by `firstName`.
1501
Array can have as many items as you want.
1502
* `[{ lastName: -1 }, "firstName"]` - descending sort by `lastName`,
1503
ascending subsort by `firstName`. Mixed types are ok.
1506
@param {String|String[]|Object|Object[]} fields The field(s) to sort by
1507
@param {Object} [payload] Extra `sort` event payload you want to send along
1512
sort: function (fields, payload) {
1514
Notifies of an impending sort, either from clicking on a column
1515
header, or from a call to the `sort` or `toggleSort` method.
1517
The requested sort is available in the `sortBy` property of the event.
1519
The default behavior of this event sets the table's `sortBy` attribute.
1522
@param {String|String[]|Object|Object[]} sortBy The requested sort
1523
@preventable _defSortFn
1525
return this.fire('sort', Y.merge((payload || {}), {
1526
sortBy: fields || this.get('sortBy')
1531
Template for the node that will wrap the header content for sortable
1534
@property SORTABLE_HEADER_TEMPLATE
1536
@value '<div class="{className}" tabindex="0"><span class="{indicatorClass}"></span></div>'
1539
SORTABLE_HEADER_TEMPLATE: '<div class="{className}" tabindex="0"><span class="{indicatorClass}"></span></div>',
1542
Reverse the current sort direction of one or more fields currently being
1545
Pass the `key` of the column or columns you want the sort order reversed
1549
@param {String|String[]} fields The field(s) to reverse sort order for
1550
@param {Object} [payload] Extra `sort` event payload you want to send along
1555
toggleSort: function (columns, payload) {
1556
var current = this._sortBy,
1558
i, len, j, col, index;
1560
// To avoid updating column configs or sortBy directly
1561
for (i = 0, len = current.length; i < len; ++i) {
1563
col[current[i]._id] = current[i].sortDir;
1568
columns = toArray(columns);
1570
for (i = 0, len = columns.length; i < len; ++i) {
1574
for (j = sortBy.length - 1; i >= 0; --i) {
1575
if (sortBy[j][col]) {
1576
sortBy[j][col] *= -1;
1582
for (i = 0, len = sortBy.length; i < len; ++i) {
1583
for (col in sortBy[i]) {
1584
if (sortBy[i].hasOwnProperty(col)) {
1585
sortBy[i][col] *= -1;
1592
return this.fire('sort', Y.merge((payload || {}), {
1597
//--------------------------------------------------------------------------
1598
// Protected properties and methods
1599
//--------------------------------------------------------------------------
1601
Sorts the `data` ModelList based on the new `sortBy` configuration.
1603
@method _afterSortByChange
1604
@param {EventFacade} e The `sortByChange` event
1608
_afterSortByChange: function (e) {
1609
// Can't use a setter because it's a chicken and egg problem. The
1610
// columns need to be set up to translate, but columns are initialized
1611
// from Core's initializer. So construction-time assignment would
1615
// Don't sort unless sortBy has been set
1616
if (this._sortBy.length) {
1617
if (!this.data.comparator) {
1618
this.data.comparator = this._sortComparator;
1626
Applies the sorting logic to the new ModelList if the `newVal` is a new
1629
@method _afterSortDataChange
1630
@param {EventFacade} e the `dataChange` event
1634
_afterSortDataChange: function (e) {
1635
// object values always trigger a change event, but we only want to
1636
// call _initSortFn if the value passed to the `data` attribute was a
1637
// new ModelList, not a set of new data as an array, or even the same
1638
// ModelList.
1639
if (e.prevVal !== e.newVal || e.newVal.hasOwnProperty('_compare')) {
1645
Checks if any of the fields in the modified record are fields that are
1646
currently being sorted by, and if so, resorts the `data` ModelList.
1648
@method _afterSortRecordChange
1649
@param {EventFacade} e The Model's `change` event
1653
_afterSortRecordChange: function (e) {
1656
for (i = 0, len = this._sortBy.length; i < len; ++i) {
1657
if (e.changed[this._sortBy[i].key]) {
1665
Subscribes to state changes that warrant updating the UI, and adds the
1666
click handler for triggering the sort operation from the UI.
1672
_bindSortUI: function () {
1673
this.after(['sortableChange', 'sortByChange', 'columnsChange'],
1674
Y.bind('_uiSetSortable', this));
1676
if (this._theadNode) {
1677
this._sortHandle = this.delegate(['click','keydown'],
1678
Y.rbind('_onUITriggerSort', this),
1679
'.' + this.getClassName('sortable', 'column'));
1684
Sets the `sortBy` attribute from the `sort` event's `e.sortBy` value.
1687
@param {EventFacade} e The `sort` event
1691
_defSortFn: function (e) {
1692
this.set.apply(this, ['sortBy', e.sortBy].concat(e.details));
1696
Removes the click subscription from the header for sorting.
1702
destructor: function () {
1703
if (this._sortHandle) {
1704
this._sortHandle.detach();
1709
Getter for the `sortBy` attribute.
1711
Supports the special subattribute "sortBy.state" to get a normalized JSON
1712
version of the current sort state. Otherwise, returns the last assigned
1717
<pre><code>var table = new Y.DataTable({
1720
sortBy: 'username'
1723
table.get('sortBy'); // 'username'
1724
table.get('sortBy.state'); // { key: 'username', dir: 1 }
1726
table.sort(['lastName', { firstName: "desc" }]);
1727
table.get('sortBy'); // ['lastName', { firstName: "desc" }]
1728
table.get('sortBy.state'); // [{ key: "lastName", dir: 1 }, { key: "firstName", dir: -1 }]
1729
</code></pre>
1732
@param {String|String[]|Object|Object[]} val The current sortBy value
1733
@param {String} detail String passed to `get(HERE)`. to parse subattributes
1737
_getSortBy: function (val, detail) {
1738
var state, i, len, col;
1740
// "sortBy." is 7 characters. Used to catch
1741
detail = detail.slice(7);
1743
// TODO: table.get('sortBy.asObject')? table.get('sortBy.json')?
1744
if (detail === 'state') {
1747
for (i = 0, len = this._sortBy.length; i < len; ++i) {
1748
col = this._sortBy[i];
1755
// TODO: Always return an array?
1756
return { state: (state.length === 1) ? state[0] : state };
1763
Sets up the initial sort state and instance properties. Publishes events
1764
and subscribes to attribute change events to maintain internal state.
1770
initializer: function () {
1771
var boundParseSortable = Y.bind('_parseSortable', this);
1773
this._parseSortable();
1779
this._initSortStrings();
1782
renderHeader : Y.bind('_renderSortable', this),
1783
dataChange : Y.bind('_afterSortDataChange', this),
1784
sortByChange : Y.bind('_afterSortByChange', this),
1785
sortableChange: boundParseSortable,
1786
columnsChange : boundParseSortable,
1787
"*:change" : Y.bind('_afterSortRecordChange', this)
1790
this.publish('sort', {
1791
defaultFn: Y.bind('_defSortFn', this)
1796
Creates a `_compare` function for the `data` ModelList to allow custom
1797
sorting by multiple fields.
1803
_initSortFn: function () {
1806
// TODO: This should be a ModelList extension.
1807
// FIXME: Modifying a component of the host seems a little smelly
1808
// FIXME: Declaring inline override to leverage closure vs
1809
// compiling a new function for each column/sortable change or
1810
// binding the _compare implementation to this, resulting in an
1811
// extra function hop during sorting. Lesser of three evils?
1812
this.data._compare = function (a, b) {
1814
i, len, col, dir, aa, bb;
1816
for (i = 0, len = self._sortBy.length; !cmp && i < len; ++i) {
1817
col = self._sortBy[i];
1821
cmp = col.sortFn(a, b, (dir === -1));
1823
// FIXME? Requires columns without sortFns to have key
1824
aa = a.get(col.key);
1825
bb = b.get(col.key);
1827
cmp = (aa > bb) ? dir : ((aa < bb) ? -dir : 0);
1834
if (this._sortBy.length) {
1835
this.data.comparator = this._sortComparator;
1837
// TODO: is this necessary? Should it be elsewhere?
1840
// Leave the _compare method in place to avoid having to set it
1841
// up again. Mistake?
1842
delete this.data.comparator;
1847
Add the sort related strings to the `strings` map.
1849
@method _initSortStrings
1853
_initSortStrings: function () {
1854
// Not a valueFn because other class extensions will want to add to it
1855
this.set('strings', Y.mix((this.get('strings') || {}),
1856
Y.Intl.get('datatable-sort')));
1860
Fires the `sort` event in response to user clicks on sortable column
1863
@method _onUITriggerSort
1864
@param {DOMEventFacade} e The `click` event
1868
_onUITriggerSort: function (e) {
1869
var id = e.currentTarget.getAttribute('data-yui3-col-id'),
1870
sortBy = e.shiftKey ? this.get('sortBy') : [{}],
1871
column = id && this.getColumn(id),
1874
if (e.type === 'keydown' && e.keyCode !== 32) {
1878
// In case a headerTemplate injected a link
1879
// TODO: Is this overreaching?
1884
for (i = 0, len = sortBy.length; i < len; ++i) {
1885
if (id === sortBy[i] || Math.abs(sortBy[i][id] === 1)) {
1886
if (!isObject(sortBy[i])) {
1890
sortBy[i][id] = -(column.sortDir|0) || 1;
1896
sortBy.push(column._id);
1899
sortBy[0][id] = -(column.sortDir|0) || 1;
1902
this.fire('sort', {
1910
Normalizes the possible input values for the `sortable` attribute, storing
1911
the results in the `_sortable` property.
1913
@method _parseSortable
1917
_parseSortable: function () {
1918
var sortable = this.get('sortable'),
1922
if (isArray(sortable)) {
1923
for (i = 0, len = sortable.length; i < len; ++i) {
1926
// isArray is called because arrays are objects, but will rely
1927
// on getColumn to nullify them for the subsequent if (col)
1928
if (!isObject(col, true) || isArray(col)) {
1929
col = this.getColumn(col);
1936
} else if (sortable) {
1937
columns = this._displayColumns.slice();
1939
if (sortable === 'auto') {
1940
for (i = columns.length - 1; i >= 0; --i) {
1941
if (!columns[i].sortable) {
1942
columns.splice(i, 1);
1948
this._sortable = columns;
1952
Initial application of the sortable UI.
1954
@method _renderSortable
1958
_renderSortable: function () {
1959
this._uiSetSortable();
1965
Parses the current `sortBy` attribute into a normalized structure for the
1966
`data` ModelList's `_compare` method. Also updates the column
1967
configurations' `sortDir` properties.
1973
_setSortBy: function () {
1974
var columns = this._displayColumns,
1975
sortBy = this.get('sortBy') || [],
1976
sortedClass = ' ' + this.getClassName('sorted'),
1977
i, len, name, dir, field, column;
1981
// Purge current sort state from column configs
1982
for (i = 0, len = columns.length; i < len; ++i) {
1983
column = columns[i];
1985
delete column.sortDir;
1987
if (column.className) {
1988
// TODO: be more thorough
1989
column.className = column.className.replace(sortedClass, '');
1993
sortBy = toArray(sortBy);
1995
for (i = 0, len = sortBy.length; i < len; ++i) {
1999
if (isObject(name)) {
2001
// Have to use a for-in loop to process sort({ foo: -1 })
2002
for (name in field) {
2003
if (field.hasOwnProperty(name)) {
2004
dir = dirMap[field[name]];
2011
// Allow sorting of any model field and any column
2012
// FIXME: this isn't limited to model attributes, but there's no
2013
// convenient way to get a list of the attributes for a Model
2014
// subclass *including* the attributes of its superclasses.
2015
column = this.getColumn(name) || { _id: name, key: name };
2018
column.sortDir = dir;
2020
if (!column.className) {
2021
column.className = '';
2024
column.className += sortedClass;
2026
this._sortBy.push(column);
2033
Array of column configuration objects of those columns that need UI setup
2034
for user interaction.
2041
//_sortable: null,
2044
Array of column configuration objects for those columns that are currently
2045
being used to sort the data. Fake column objects are used for fields that
2046
are not rendered as columns.
2053
//_sortBy: null,
2056
Replacement `comparator` for the `data` ModelList that defers sorting logic
2057
to the `_compare` method. The deferral is accomplished by returning `this`.
2059
@method _sortComparator
2060
@param {Model} item The record being evaluated for sort position
2061
@return {Model} The record
2065
_sortComparator: function (item) {
2066
// Defer sorting to ModelList's _compare
2071
Applies the appropriate classes to the `boundingBox` and column headers to
2072
indicate sort state and sortability.
2074
Also currently wraps the header content of sortable columns in a `<div>`
2075
liner to give a CSS anchor for sort indicators.
2077
@method _uiSetSortable
2081
_uiSetSortable: function () {
2082
var columns = this._sortable || [],
2083
sortableClass = this.getClassName('sortable', 'column'),
2084
ascClass = this.getClassName('sorted'),
2085
descClass = this.getClassName('sorted', 'desc'),
2086
linerClass = this.getClassName('sort', 'liner'),
2087
indicatorClass= this.getClassName('sort', 'indicator'),
2089
i, len, col, node, liner, title, desc;
2091
this.get('boundingBox').toggleClass(
2092
this.getClassName('sortable'),
2095
for (i = 0, len = columns.length; i < len; ++i) {
2096
sortableCols[columns[i].id] = columns[i];
2099
// TODO: this.head.render() + decorate cells?
2100
this._theadNode.all('.' + sortableClass).each(function (node) {
2101
var col = sortableCols[node.get('id')],
2102
liner = node.one('.' + linerClass),
2107
node.removeClass(ascClass)
2108
.removeClass(descClass);
2111
node.removeClass(sortableClass)
2112
.removeClass(ascClass)
2113
.removeClass(descClass);
2116
liner.replace(liner.get('childNodes').toFrag());
2119
indicator = node.one('.' + indicatorClass);
2122
indicator.remove().destroy(true);
2127
for (i = 0, len = columns.length; i < len; ++i) {
2129
node = this._theadNode.one('#' + col.id);
2130
desc = col.sortDir === -1;
2133
liner = node.one('.' + linerClass);
2135
node.addClass(sortableClass);
2138
node.addClass(ascClass);
2140
node.toggleClass(descClass, desc);
2142
node.setAttribute('aria-sort', desc ?
2143
'descending' : 'ascending');
2147
liner = Y.Node.create(Y.Lang.sub(
2148
this.SORTABLE_HEADER_TEMPLATE, {
2149
className: linerClass,
2150
indicatorClass: indicatorClass
2153
liner.prepend(node.get('childNodes').toFrag());
2158
title = sub(this.getString(
2159
(col.sortDir === 1) ? 'reverseSortBy' : 'sortBy'), {
2160
column: col.abbr || col.label ||
2161
col.key || ('column ' + i)
2164
node.setAttribute('title', title);
2165
// To combat VoiceOver from reading the sort title as the
2166
// column header
2167
node.setAttribute('aria-labelledby', col.id);
2173
Allows values `true`, `false`, "auto", or arrays of column names through.
2175
@method _validateSortable
2176
@param {Any} val The input value to `set("sortable", VAL)`
2181
_validateSortable: function (val) {
2182
return val === 'auto' || isBoolean(val) || isArray(val);
2186
Allows strings, arrays of strings, objects, or arrays of objects.
2188
@method _validateSortBy
2189
@param {String|String[]|Object|Object[]} val The new `sortBy` value
2194
_validateSortBy: function (val) {
2195
return val === null ||
2197
isObject(val, true) ||
2198
(isArray(val) && (isString(val[0]) || isObject(val, true)));
2203
Y.DataTable.Sortable = Sortable;
2205
Y.Base.mix(Y.DataTable, [Sortable]);
2216
<script src="../assets/vendor/prettify/prettify-min.js"></script>
2217
<script>prettyPrint();</script>
2218
<script src="../assets/js/yui-prettify.js"></script>
2219
<script src="../assets/../api.js"></script>
2220
<script src="../assets/js/api-filter.js"></script>
2221
<script src="../assets/js/api-list.js"></script>
2222
<script src="../assets/js/api-search.js"></script>
2223
<script src="../assets/js/apidocs.js"></script>