~smagoun/whoopsie/whoopsie-lp1017637

« back to all changes in this revision

Viewing changes to backend/stats/static/js/yui/api/files/datatable_js_sort.js.html

  • Committer: Evan Dandrea
  • Date: 2012-05-09 05:53:45 UTC
  • Revision ID: evan.dandrea@canonical.com-20120509055345-z2j41tmcbf4as5uf
The backend now lives in lp:daisy and the website (errors.ubuntu.com) now lives in lp:errors.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<!DOCTYPE html>
2
 
<html lang="en">
3
 
<head>
4
 
    <meta charset="utf-8">
5
 
    <title>datatable&#x2F;js&#x2F;sort.js - YUI 3</title>
6
 
    <link rel="stylesheet" href="http:&#x2F;&#x2F;yui.yahooapis.com&#x2F;3.5.0pr4&#x2F;build&#x2F;cssgrids&#x2F;cssgrids-min.css">
7
 
    <link rel="stylesheet" href="..&#x2F;assets/vendor/prettify/prettify-min.css">
8
 
    <link rel="stylesheet" href="..&#x2F;assets/css/main.css" id="site_styles">
9
 
    <script src="http:&#x2F;&#x2F;yui.yahooapis.com&#x2F;3.5.0pr4&#x2F;build&#x2F;yui&#x2F;yui-min.js"></script>
10
 
</head>
11
 
<body class="yui3-skin-sam">
12
 
 
13
 
<div id="doc">
14
 
    <div id="hd" class="yui3-g header">
15
 
        <div class="yui3-u-3-4">
16
 
            
17
 
                <h1><img src="..&#x2F;assets/css/logo.png" title="YUI 3"></h1>
18
 
            
19
 
        </div>
20
 
        <div class="yui3-u-1-4 version">
21
 
            <em>API Docs for: 3.5.0</em>
22
 
        </div>
23
 
    </div>
24
 
    <div id="bd" class="yui3-g">
25
 
 
26
 
        <div class="yui3-u-1-4">
27
 
            <div id="docs-sidebar" class="sidebar apidocs">
28
 
                <div id="api-list">
29
 
    <h2 class="off-left">APIs</h2>
30
 
    <div id="api-tabview" class="tabview">
31
 
        <ul class="tabs">
32
 
            <li><a href="#api-classes">Classes</a></li>
33
 
            <li><a href="#api-modules">Modules</a></li>
34
 
        </ul>
35
 
 
36
 
        <div id="api-tabview-filter">
37
 
            <input type="search" id="api-filter" placeholder="Type to filter APIs">
38
 
        </div>
39
 
 
40
 
        <div id="api-tabview-panel">
41
 
            <ul id="api-classes" class="apis classes">
42
 
            
43
 
                <li><a href="..&#x2F;classes/Anim.html">Anim</a></li>
44
 
            
45
 
                <li><a href="..&#x2F;classes/App.html">App</a></li>
46
 
            
47
 
                <li><a href="..&#x2F;classes/App.Base.html">App.Base</a></li>
48
 
            
49
 
                <li><a href="..&#x2F;classes/App.Transitions.html">App.Transitions</a></li>
50
 
            
51
 
                <li><a href="..&#x2F;classes/App.TransitionsNative.html">App.TransitionsNative</a></li>
52
 
            
53
 
                <li><a href="..&#x2F;classes/AreaSeries.html">AreaSeries</a></li>
54
 
            
55
 
                <li><a href="..&#x2F;classes/AreaSplineSeries.html">AreaSplineSeries</a></li>
56
 
            
57
 
                <li><a href="..&#x2F;classes/Array.html">Array</a></li>
58
 
            
59
 
                <li><a href="..&#x2F;classes/ArrayList.html">ArrayList</a></li>
60
 
            
61
 
                <li><a href="..&#x2F;classes/ArraySort.html">ArraySort</a></li>
62
 
            
63
 
                <li><a href="..&#x2F;classes/AsyncQueue.html">AsyncQueue</a></li>
64
 
            
65
 
                <li><a href="..&#x2F;classes/Attribute.html">Attribute</a></li>
66
 
            
67
 
                <li><a href="..&#x2F;classes/AttributeCore.html">AttributeCore</a></li>
68
 
            
69
 
                <li><a href="..&#x2F;classes/AttributeEvents.html">AttributeEvents</a></li>
70
 
            
71
 
                <li><a href="..&#x2F;classes/AttributeExtras.html">AttributeExtras</a></li>
72
 
            
73
 
                <li><a href="..&#x2F;classes/AttributeLite.html">AttributeLite</a></li>
74
 
            
75
 
                <li><a href="..&#x2F;classes/AutoComplete.html">AutoComplete</a></li>
76
 
            
77
 
                <li><a href="..&#x2F;classes/AutoCompleteBase.html">AutoCompleteBase</a></li>
78
 
            
79
 
                <li><a href="..&#x2F;classes/AutoCompleteFilters.html">AutoCompleteFilters</a></li>
80
 
            
81
 
                <li><a href="..&#x2F;classes/AutoCompleteHighlighters.html">AutoCompleteHighlighters</a></li>
82
 
            
83
 
                <li><a href="..&#x2F;classes/AutoCompleteList.html">AutoCompleteList</a></li>
84
 
            
85
 
                <li><a href="..&#x2F;classes/Axis.html">Axis</a></li>
86
 
            
87
 
                <li><a href="..&#x2F;classes/AxisType.html">AxisType</a></li>
88
 
            
89
 
                <li><a href="..&#x2F;classes/BarSeries.html">BarSeries</a></li>
90
 
            
91
 
                <li><a href="..&#x2F;classes/Base.html">Base</a></li>
92
 
            
93
 
                <li><a href="..&#x2F;classes/BaseCore.html">BaseCore</a></li>
94
 
            
95
 
                <li><a href="..&#x2F;classes/BottomAxisLayout.html">BottomAxisLayout</a></li>
96
 
            
97
 
                <li><a href="..&#x2F;classes/Button.html">Button</a></li>
98
 
            
99
 
                <li><a href="..&#x2F;classes/ButtonCore.html">ButtonCore</a></li>
100
 
            
101
 
                <li><a href="..&#x2F;classes/ButtonGroup.html">ButtonGroup</a></li>
102
 
            
103
 
                <li><a href="..&#x2F;classes/ButtonPlugin.html">ButtonPlugin</a></li>
104
 
            
105
 
                <li><a href="..&#x2F;classes/Cache.html">Cache</a></li>
106
 
            
107
 
                <li><a href="..&#x2F;classes/CacheOffline.html">CacheOffline</a></li>
108
 
            
109
 
                <li><a href="..&#x2F;classes/Calendar.html">Calendar</a></li>
110
 
            
111
 
                <li><a href="..&#x2F;classes/CalendarBase.html">CalendarBase</a></li>
112
 
            
113
 
                <li><a href="..&#x2F;classes/CanvasCircle.html">CanvasCircle</a></li>
114
 
            
115
 
                <li><a href="..&#x2F;classes/CanvasDrawing.html">CanvasDrawing</a></li>
116
 
            
117
 
                <li><a href="..&#x2F;classes/CanvasEllipse.html">CanvasEllipse</a></li>
118
 
            
119
 
                <li><a href="..&#x2F;classes/CanvasGraphic.html">CanvasGraphic</a></li>
120
 
            
121
 
                <li><a href="..&#x2F;classes/CanvasPath.html">CanvasPath</a></li>
122
 
            
123
 
                <li><a href="..&#x2F;classes/CanvasPieSlice.html">CanvasPieSlice</a></li>
124
 
            
125
 
                <li><a href="..&#x2F;classes/CanvasRect.html">CanvasRect</a></li>
126
 
            
127
 
                <li><a href="..&#x2F;classes/CanvasShape.html">CanvasShape</a></li>
128
 
            
129
 
                <li><a href="..&#x2F;classes/CartesianChart.html">CartesianChart</a></li>
130
 
            
131
 
                <li><a href="..&#x2F;classes/CartesianSeries.html">CartesianSeries</a></li>
132
 
            
133
 
                <li><a href="..&#x2F;classes/CategoryAxis.html">CategoryAxis</a></li>
134
 
            
135
 
                <li><a href="..&#x2F;classes/Chart.html">Chart</a></li>
136
 
            
137
 
                <li><a href="..&#x2F;classes/ChartBase.html">ChartBase</a></li>
138
 
            
139
 
                <li><a href="..&#x2F;classes/ChartLegend.html">ChartLegend</a></li>
140
 
            
141
 
                <li><a href="..&#x2F;classes/Circle.html">Circle</a></li>
142
 
            
143
 
                <li><a href="..&#x2F;classes/ClassNameManager.html">ClassNameManager</a></li>
144
 
            
145
 
                <li><a href="..&#x2F;classes/ClickableRail.html">ClickableRail</a></li>
146
 
            
147
 
                <li><a href="..&#x2F;classes/ColumnSeries.html">ColumnSeries</a></li>
148
 
            
149
 
                <li><a href="..&#x2F;classes/ComboSeries.html">ComboSeries</a></li>
150
 
            
151
 
                <li><a href="..&#x2F;classes/ComboSplineSeries.html">ComboSplineSeries</a></li>
152
 
            
153
 
                <li><a href="..&#x2F;classes/config.html">config</a></li>
154
 
            
155
 
                <li><a href="..&#x2F;classes/Console.html">Console</a></li>
156
 
            
157
 
                <li><a href="..&#x2F;classes/Controller.html">Controller</a></li>
158
 
            
159
 
                <li><a href="..&#x2F;classes/Cookie.html">Cookie</a></li>
160
 
            
161
 
                <li><a href="..&#x2F;classes/CurveUtil.html">CurveUtil</a></li>
162
 
            
163
 
                <li><a href="..&#x2F;classes/CustomEvent.html">CustomEvent</a></li>
164
 
            
165
 
                <li><a href="..&#x2F;classes/DataSchema.Array.html">DataSchema.Array</a></li>
166
 
            
167
 
                <li><a href="..&#x2F;classes/DataSchema.Base.html">DataSchema.Base</a></li>
168
 
            
169
 
                <li><a href="..&#x2F;classes/DataSchema.JSON.html">DataSchema.JSON</a></li>
170
 
            
171
 
                <li><a href="..&#x2F;classes/DataSchema.Text.html">DataSchema.Text</a></li>
172
 
            
173
 
                <li><a href="..&#x2F;classes/DataSchema.XML.html">DataSchema.XML</a></li>
174
 
            
175
 
                <li><a href="..&#x2F;classes/DataSource.Function.html">DataSource.Function</a></li>
176
 
            
177
 
                <li><a href="..&#x2F;classes/DataSource.Get.html">DataSource.Get</a></li>
178
 
            
179
 
                <li><a href="..&#x2F;classes/DataSource.IO.html">DataSource.IO</a></li>
180
 
            
181
 
                <li><a href="..&#x2F;classes/DataSource.Local.html">DataSource.Local</a></li>
182
 
            
183
 
                <li><a href="..&#x2F;classes/DataSourceArraySchema.html">DataSourceArraySchema</a></li>
184
 
            
185
 
                <li><a href="..&#x2F;classes/DataSourceCache.html">DataSourceCache</a></li>
186
 
            
187
 
                <li><a href="..&#x2F;classes/DataSourceCacheExtension.html">DataSourceCacheExtension</a></li>
188
 
            
189
 
                <li><a href="..&#x2F;classes/DataSourceJSONSchema.html">DataSourceJSONSchema</a></li>
190
 
            
191
 
                <li><a href="..&#x2F;classes/DataSourceTextSchema.html">DataSourceTextSchema</a></li>
192
 
            
193
 
                <li><a href="..&#x2F;classes/DataSourceXMLSchema.html">DataSourceXMLSchema</a></li>
194
 
            
195
 
                <li><a href="..&#x2F;classes/DataTable.html">DataTable</a></li>
196
 
            
197
 
                <li><a href="..&#x2F;classes/DataTable.Base.html">DataTable.Base</a></li>
198
 
            
199
 
                <li><a href="..&#x2F;classes/DataTable.BodyView.html">DataTable.BodyView</a></li>
200
 
            
201
 
                <li><a href="..&#x2F;classes/DataTable.ColumnWidths.html">DataTable.ColumnWidths</a></li>
202
 
            
203
 
                <li><a href="..&#x2F;classes/DataTable.Core.html">DataTable.Core</a></li>
204
 
            
205
 
                <li><a href="..&#x2F;classes/DataTable.HeaderView.html">DataTable.HeaderView</a></li>
206
 
            
207
 
                <li><a href="..&#x2F;classes/DataTable.Message.html">DataTable.Message</a></li>
208
 
            
209
 
                <li><a href="..&#x2F;classes/DataTable.Mutable.html">DataTable.Mutable</a></li>
210
 
            
211
 
                <li><a href="..&#x2F;classes/DataTable.Scrollable.html">DataTable.Scrollable</a></li>
212
 
            
213
 
                <li><a href="..&#x2F;classes/DataTable.Sortable.html">DataTable.Sortable</a></li>
214
 
            
215
 
                <li><a href="..&#x2F;classes/DataType.Date.html">DataType.Date</a></li>
216
 
            
217
 
                <li><a href="..&#x2F;classes/DataType.Date.Locale.html">DataType.Date.Locale</a></li>
218
 
            
219
 
                <li><a href="..&#x2F;classes/DataType.Number.html">DataType.Number</a></li>
220
 
            
221
 
                <li><a href="..&#x2F;classes/DataType.XML.html">DataType.XML</a></li>
222
 
            
223
 
                <li><a href="..&#x2F;classes/DD.DDM.html">DD.DDM</a></li>
224
 
            
225
 
                <li><a href="..&#x2F;classes/DD.Delegate.html">DD.Delegate</a></li>
226
 
            
227
 
                <li><a href="..&#x2F;classes/DD.Drag.html">DD.Drag</a></li>
228
 
            
229
 
                <li><a href="..&#x2F;classes/DD.Drop.html">DD.Drop</a></li>
230
 
            
231
 
                <li><a href="..&#x2F;classes/DD.Plugin.DDWindowScroll.html">DD.Plugin.DDWindowScroll</a></li>
232
 
            
233
 
                <li><a href="..&#x2F;classes/DD.Scroll.html">DD.Scroll</a></li>
234
 
            
235
 
                <li><a href="..&#x2F;classes/Dial.html">Dial</a></li>
236
 
            
237
 
                <li><a href="..&#x2F;classes/Do.html">Do</a></li>
238
 
            
239
 
                <li><a href="..&#x2F;classes/Do.AlterArgs.html">Do.AlterArgs</a></li>
240
 
            
241
 
                <li><a href="..&#x2F;classes/Do.AlterReturn.html">Do.AlterReturn</a></li>
242
 
            
243
 
                <li><a href="..&#x2F;classes/Do.Error.html">Do.Error</a></li>
244
 
            
245
 
                <li><a href="..&#x2F;classes/Do.Halt.html">Do.Halt</a></li>
246
 
            
247
 
                <li><a href="..&#x2F;classes/Do.Method.html">Do.Method</a></li>
248
 
            
249
 
                <li><a href="..&#x2F;classes/Do.Prevent.html">Do.Prevent</a></li>
250
 
            
251
 
                <li><a href="..&#x2F;classes/DOM.html">DOM</a></li>
252
 
            
253
 
                <li><a href="..&#x2F;classes/DOMEventFacade.html">DOMEventFacade</a></li>
254
 
            
255
 
                <li><a href="..&#x2F;classes/Drawing.html">Drawing</a></li>
256
 
            
257
 
                <li><a href="..&#x2F;classes/Easing.html">Easing</a></li>
258
 
            
259
 
                <li><a href="..&#x2F;classes/EditorBase.html">EditorBase</a></li>
260
 
            
261
 
                <li><a href="..&#x2F;classes/EditorSelection.html">EditorSelection</a></li>
262
 
            
263
 
                <li><a href="..&#x2F;classes/Ellipse.html">Ellipse</a></li>
264
 
            
265
 
                <li><a href="..&#x2F;classes/EllipseGroup.html">EllipseGroup</a></li>
266
 
            
267
 
                <li><a href="..&#x2F;classes/Escape.html">Escape</a></li>
268
 
            
269
 
                <li><a href="..&#x2F;classes/Event.html">Event</a></li>
270
 
            
271
 
                <li><a href="..&#x2F;classes/EventFacade.html">EventFacade</a></li>
272
 
            
273
 
                <li><a href="..&#x2F;classes/EventHandle.html">EventHandle</a></li>
274
 
            
275
 
                <li><a href="..&#x2F;classes/EventTarget.html">EventTarget</a></li>
276
 
            
277
 
                <li><a href="..&#x2F;classes/ExecCommand.html">ExecCommand</a></li>
278
 
            
279
 
                <li><a href="..&#x2F;classes/Features.html">Features</a></li>
280
 
            
281
 
                <li><a href="..&#x2F;classes/File.html">File</a></li>
282
 
            
283
 
                <li><a href="..&#x2F;classes/FileFlash.html">FileFlash</a></li>
284
 
            
285
 
                <li><a href="..&#x2F;classes/FileHTML5.html">FileHTML5</a></li>
286
 
            
287
 
                <li><a href="..&#x2F;classes/Fills.html">Fills</a></li>
288
 
            
289
 
                <li><a href="..&#x2F;classes/Frame.html">Frame</a></li>
290
 
            
291
 
                <li><a href="..&#x2F;classes/Get.html">Get</a></li>
292
 
            
293
 
                <li><a href="..&#x2F;classes/Get.Transaction.html">Get.Transaction</a></li>
294
 
            
295
 
                <li><a href="..&#x2F;classes/GetNodeJS.html">GetNodeJS</a></li>
296
 
            
297
 
                <li><a href="..&#x2F;classes/Graph.html">Graph</a></li>
298
 
            
299
 
                <li><a href="..&#x2F;classes/Graphic.html">Graphic</a></li>
300
 
            
301
 
                <li><a href="..&#x2F;classes/GraphicBase.html">GraphicBase</a></li>
302
 
            
303
 
                <li><a href="..&#x2F;classes/Gridlines.html">Gridlines</a></li>
304
 
            
305
 
                <li><a href="..&#x2F;classes/GroupCircle.html">GroupCircle</a></li>
306
 
            
307
 
                <li><a href="..&#x2F;classes/GroupDiamond.html">GroupDiamond</a></li>
308
 
            
309
 
                <li><a href="..&#x2F;classes/GroupRect.html">GroupRect</a></li>
310
 
            
311
 
                <li><a href="..&#x2F;classes/Handlebars.html">Handlebars</a></li>
312
 
            
313
 
                <li><a href="..&#x2F;classes/Highlight.html">Highlight</a></li>
314
 
            
315
 
                <li><a href="..&#x2F;classes/Histogram.html">Histogram</a></li>
316
 
            
317
 
                <li><a href="..&#x2F;classes/HistoryBase.html">HistoryBase</a></li>
318
 
            
319
 
                <li><a href="..&#x2F;classes/HistoryHash.html">HistoryHash</a></li>
320
 
            
321
 
                <li><a href="..&#x2F;classes/HistoryHTML5.html">HistoryHTML5</a></li>
322
 
            
323
 
                <li><a href="..&#x2F;classes/HorizontalLegendLayout.html">HorizontalLegendLayout</a></li>
324
 
            
325
 
                <li><a href="..&#x2F;classes/ImgLoadGroup.html">ImgLoadGroup</a></li>
326
 
            
327
 
                <li><a href="..&#x2F;classes/ImgLoadImgObj.html">ImgLoadImgObj</a></li>
328
 
            
329
 
                <li><a href="..&#x2F;classes/Intl.html">Intl</a></li>
330
 
            
331
 
                <li><a href="..&#x2F;classes/IO.html">IO</a></li>
332
 
            
333
 
                <li><a href="..&#x2F;classes/json.html">json</a></li>
334
 
            
335
 
                <li><a href="..&#x2F;classes/JSONPRequest.html">JSONPRequest</a></li>
336
 
            
337
 
                <li><a href="..&#x2F;classes/Lang.html">Lang</a></li>
338
 
            
339
 
                <li><a href="..&#x2F;classes/LeftAxisLayout.html">LeftAxisLayout</a></li>
340
 
            
341
 
                <li><a href="..&#x2F;classes/Lines.html">Lines</a></li>
342
 
            
343
 
                <li><a href="..&#x2F;classes/LineSeries.html">LineSeries</a></li>
344
 
            
345
 
                <li><a href="..&#x2F;classes/Loader.html">Loader</a></li>
346
 
            
347
 
                <li><a href="..&#x2F;classes/MarkerSeries.html">MarkerSeries</a></li>
348
 
            
349
 
                <li><a href="..&#x2F;classes/Matrix.html">Matrix</a></li>
350
 
            
351
 
                <li><a href="..&#x2F;classes/Model.html">Model</a></li>
352
 
            
353
 
                <li><a href="..&#x2F;classes/ModelList.html">ModelList</a></li>
354
 
            
355
 
                <li><a href="..&#x2F;classes/Node.html">Node</a></li>
356
 
            
357
 
                <li><a href="..&#x2F;classes/NodeList.html">NodeList</a></li>
358
 
            
359
 
                <li><a href="..&#x2F;classes/NumericAxis.html">NumericAxis</a></li>
360
 
            
361
 
                <li><a href="..&#x2F;classes/Object.html">Object</a></li>
362
 
            
363
 
                <li><a href="..&#x2F;classes/Overlay.html">Overlay</a></li>
364
 
            
365
 
                <li><a href="..&#x2F;classes/Panel.html">Panel</a></li>
366
 
            
367
 
                <li><a href="..&#x2F;classes/Parallel.html">Parallel</a></li>
368
 
            
369
 
                <li><a href="..&#x2F;classes/Path.html">Path</a></li>
370
 
            
371
 
                <li><a href="..&#x2F;classes/PieChart.html">PieChart</a></li>
372
 
            
373
 
                <li><a href="..&#x2F;classes/PieSeries.html">PieSeries</a></li>
374
 
            
375
 
                <li><a href="..&#x2F;classes/Pjax.html">Pjax</a></li>
376
 
            
377
 
                <li><a href="..&#x2F;classes/PjaxBase.html">PjaxBase</a></li>
378
 
            
379
 
                <li><a href="..&#x2F;classes/Plots.html">Plots</a></li>
380
 
            
381
 
                <li><a href="..&#x2F;classes/Plugin.Align.html">Plugin.Align</a></li>
382
 
            
383
 
                <li><a href="..&#x2F;classes/Plugin.AutoComplete.html">Plugin.AutoComplete</a></li>
384
 
            
385
 
                <li><a href="..&#x2F;classes/Plugin.Base.html">Plugin.Base</a></li>
386
 
            
387
 
                <li><a href="..&#x2F;classes/Plugin.Cache.html">Plugin.Cache</a></li>
388
 
            
389
 
                <li><a href="..&#x2F;classes/Plugin.CalendarNavigator.html">Plugin.CalendarNavigator</a></li>
390
 
            
391
 
                <li><a href="..&#x2F;classes/Plugin.ConsoleFilters.html">Plugin.ConsoleFilters</a></li>
392
 
            
393
 
                <li><a href="..&#x2F;classes/Plugin.CreateLinkBase.html">Plugin.CreateLinkBase</a></li>
394
 
            
395
 
                <li><a href="..&#x2F;classes/Plugin.DataTableDataSource.html">Plugin.DataTableDataSource</a></li>
396
 
            
397
 
                <li><a href="..&#x2F;classes/Plugin.DDConstrained.html">Plugin.DDConstrained</a></li>
398
 
            
399
 
                <li><a href="..&#x2F;classes/Plugin.DDNodeScroll.html">Plugin.DDNodeScroll</a></li>
400
 
            
401
 
                <li><a href="..&#x2F;classes/Plugin.DDProxy.html">Plugin.DDProxy</a></li>
402
 
            
403
 
                <li><a href="..&#x2F;classes/Plugin.Drag.html">Plugin.Drag</a></li>
404
 
            
405
 
                <li><a href="..&#x2F;classes/Plugin.Drop.html">Plugin.Drop</a></li>
406
 
            
407
 
                <li><a href="..&#x2F;classes/Plugin.EditorBidi.html">Plugin.EditorBidi</a></li>
408
 
            
409
 
                <li><a href="..&#x2F;classes/Plugin.EditorBR.html">Plugin.EditorBR</a></li>
410
 
            
411
 
                <li><a href="..&#x2F;classes/Plugin.EditorLists.html">Plugin.EditorLists</a></li>
412
 
            
413
 
                <li><a href="..&#x2F;classes/Plugin.EditorPara.html">Plugin.EditorPara</a></li>
414
 
            
415
 
                <li><a href="..&#x2F;classes/Plugin.EditorParaBase.html">Plugin.EditorParaBase</a></li>
416
 
            
417
 
                <li><a href="..&#x2F;classes/Plugin.EditorParaIE.html">Plugin.EditorParaIE</a></li>
418
 
            
419
 
                <li><a href="..&#x2F;classes/Plugin.EditorTab.html">Plugin.EditorTab</a></li>
420
 
            
421
 
                <li><a href="..&#x2F;classes/Plugin.ExecCommand.html">Plugin.ExecCommand</a></li>
422
 
            
423
 
                <li><a href="..&#x2F;classes/Plugin.Flick.html">Plugin.Flick</a></li>
424
 
            
425
 
                <li><a href="..&#x2F;classes/Plugin.Host.html">Plugin.Host</a></li>
426
 
            
427
 
                <li><a href="..&#x2F;classes/plugin.NodeFocusManager.html">plugin.NodeFocusManager</a></li>
428
 
            
429
 
                <li><a href="..&#x2F;classes/Plugin.NodeFX.html">Plugin.NodeFX</a></li>
430
 
            
431
 
                <li><a href="..&#x2F;classes/plugin.NodeMenuNav.html">plugin.NodeMenuNav</a></li>
432
 
            
433
 
                <li><a href="..&#x2F;classes/Plugin.Pjax.html">Plugin.Pjax</a></li>
434
 
            
435
 
                <li><a href="..&#x2F;classes/Plugin.Resize.html">Plugin.Resize</a></li>
436
 
            
437
 
                <li><a href="..&#x2F;classes/Plugin.ResizeConstrained.html">Plugin.ResizeConstrained</a></li>
438
 
            
439
 
                <li><a href="..&#x2F;classes/Plugin.ResizeProxy.html">Plugin.ResizeProxy</a></li>
440
 
            
441
 
                <li><a href="..&#x2F;classes/Plugin.ScrollViewList.html">Plugin.ScrollViewList</a></li>
442
 
            
443
 
                <li><a href="..&#x2F;classes/Plugin.ScrollViewPaginator.html">Plugin.ScrollViewPaginator</a></li>
444
 
            
445
 
                <li><a href="..&#x2F;classes/Plugin.ScrollViewScrollbars.html">Plugin.ScrollViewScrollbars</a></li>
446
 
            
447
 
                <li><a href="..&#x2F;classes/Plugin.Shim.html">Plugin.Shim</a></li>
448
 
            
449
 
                <li><a href="..&#x2F;classes/Plugin.SortScroll.html">Plugin.SortScroll</a></li>
450
 
            
451
 
                <li><a href="..&#x2F;classes/Plugin.WidgetAnim.html">Plugin.WidgetAnim</a></li>
452
 
            
453
 
                <li><a href="..&#x2F;classes/Pollable.html">Pollable</a></li>
454
 
            
455
 
                <li><a href="..&#x2F;classes/Profiler.html">Profiler</a></li>
456
 
            
457
 
                <li><a href="..&#x2F;classes/QueryString.html">QueryString</a></li>
458
 
            
459
 
                <li><a href="..&#x2F;classes/Queue.html">Queue</a></li>
460
 
            
461
 
                <li><a href="..&#x2F;classes/Record.html">Record</a></li>
462
 
            
463
 
                <li><a href="..&#x2F;classes/Recordset.html">Recordset</a></li>
464
 
            
465
 
                <li><a href="..&#x2F;classes/RecordsetFilter.html">RecordsetFilter</a></li>
466
 
            
467
 
                <li><a href="..&#x2F;classes/RecordsetIndexer.html">RecordsetIndexer</a></li>
468
 
            
469
 
                <li><a href="..&#x2F;classes/RecordsetSort.html">RecordsetSort</a></li>
470
 
            
471
 
                <li><a href="..&#x2F;classes/Rect.html">Rect</a></li>
472
 
            
473
 
                <li><a href="..&#x2F;classes/Renderer.html">Renderer</a></li>
474
 
            
475
 
                <li><a href="..&#x2F;classes/Resize.html">Resize</a></li>
476
 
            
477
 
                <li><a href="..&#x2F;classes/RightAxisLayout.html">RightAxisLayout</a></li>
478
 
            
479
 
                <li><a href="..&#x2F;classes/Router.html">Router</a></li>
480
 
            
481
 
                <li><a href="..&#x2F;classes/ScrollView.html">ScrollView</a></li>
482
 
            
483
 
                <li><a href="..&#x2F;classes/Selector.html">Selector</a></li>
484
 
            
485
 
                <li><a href="..&#x2F;classes/Shape.html">Shape</a></li>
486
 
            
487
 
                <li><a href="..&#x2F;classes/ShapeGroup.html">ShapeGroup</a></li>
488
 
            
489
 
                <li><a href="..&#x2F;classes/Slider.html">Slider</a></li>
490
 
            
491
 
                <li><a href="..&#x2F;classes/SliderBase.html">SliderBase</a></li>
492
 
            
493
 
                <li><a href="..&#x2F;classes/SliderValueRange.html">SliderValueRange</a></li>
494
 
            
495
 
                <li><a href="..&#x2F;classes/Sortable.html">Sortable</a></li>
496
 
            
497
 
                <li><a href="..&#x2F;classes/SplineSeries.html">SplineSeries</a></li>
498
 
            
499
 
                <li><a href="..&#x2F;classes/StackedAreaSeries.html">StackedAreaSeries</a></li>
500
 
            
501
 
                <li><a href="..&#x2F;classes/StackedAreaSplineSeries.html">StackedAreaSplineSeries</a></li>
502
 
            
503
 
                <li><a href="..&#x2F;classes/StackedAxis.html">StackedAxis</a></li>
504
 
            
505
 
                <li><a href="..&#x2F;classes/StackedBarSeries.html">StackedBarSeries</a></li>
506
 
            
507
 
                <li><a href="..&#x2F;classes/StackedColumnSeries.html">StackedColumnSeries</a></li>
508
 
            
509
 
                <li><a href="..&#x2F;classes/StackedComboSeries.html">StackedComboSeries</a></li>
510
 
            
511
 
                <li><a href="..&#x2F;classes/StackedComboSplineSeries.html">StackedComboSplineSeries</a></li>
512
 
            
513
 
                <li><a href="..&#x2F;classes/StackedLineSeries.html">StackedLineSeries</a></li>
514
 
            
515
 
                <li><a href="..&#x2F;classes/StackedMarkerSeries.html">StackedMarkerSeries</a></li>
516
 
            
517
 
                <li><a href="..&#x2F;classes/StackedSplineSeries.html">StackedSplineSeries</a></li>
518
 
            
519
 
                <li><a href="..&#x2F;classes/StackingUtil.html">StackingUtil</a></li>
520
 
            
521
 
                <li><a href="..&#x2F;classes/State.html">State</a></li>
522
 
            
523
 
                <li><a href="..&#x2F;classes/StyleSheet.html">StyleSheet</a></li>
524
 
            
525
 
                <li><a href="..&#x2F;classes/Subscriber.html">Subscriber</a></li>
526
 
            
527
 
                <li><a href="..&#x2F;classes/SVGCircle.html">SVGCircle</a></li>
528
 
            
529
 
                <li><a href="..&#x2F;classes/SVGDrawing.html">SVGDrawing</a></li>
530
 
            
531
 
                <li><a href="..&#x2F;classes/SVGEllipse.html">SVGEllipse</a></li>
532
 
            
533
 
                <li><a href="..&#x2F;classes/SVGGraphic.html">SVGGraphic</a></li>
534
 
            
535
 
                <li><a href="..&#x2F;classes/SVGPath.html">SVGPath</a></li>
536
 
            
537
 
                <li><a href="..&#x2F;classes/SVGPieSlice.html">SVGPieSlice</a></li>
538
 
            
539
 
                <li><a href="..&#x2F;classes/SVGRect.html">SVGRect</a></li>
540
 
            
541
 
                <li><a href="..&#x2F;classes/SVGShape.html">SVGShape</a></li>
542
 
            
543
 
                <li><a href="..&#x2F;classes/SWF.html">SWF</a></li>
544
 
            
545
 
                <li><a href="..&#x2F;classes/SWFDetect.html">SWFDetect</a></li>
546
 
            
547
 
                <li><a href="..&#x2F;classes/SyntheticEvent.html">SyntheticEvent</a></li>
548
 
            
549
 
                <li><a href="..&#x2F;classes/SyntheticEvent.Notifier.html">SyntheticEvent.Notifier</a></li>
550
 
            
551
 
                <li><a href="..&#x2F;classes/SynthRegistry.html">SynthRegistry</a></li>
552
 
            
553
 
                <li><a href="..&#x2F;classes/Tab.html">Tab</a></li>
554
 
            
555
 
                <li><a href="..&#x2F;classes/TabView.html">TabView</a></li>
556
 
            
557
 
                <li><a href="..&#x2F;classes/Test.html">Test</a></li>
558
 
            
559
 
                <li><a href="..&#x2F;classes/Test.ArrayAssert.html">Test.ArrayAssert</a></li>
560
 
            
561
 
                <li><a href="..&#x2F;classes/Test.Assert.html">Test.Assert</a></li>
562
 
            
563
 
                <li><a href="..&#x2F;classes/Test.AssertionError.html">Test.AssertionError</a></li>
564
 
            
565
 
                <li><a href="..&#x2F;classes/Test.ComparisonFailure.html">Test.ComparisonFailure</a></li>
566
 
            
567
 
                <li><a href="..&#x2F;classes/Test.Console.html">Test.Console</a></li>
568
 
            
569
 
                <li><a href="..&#x2F;classes/Test.CoverageFormat.CoverageFormat.html">Test.CoverageFormat.CoverageFormat</a></li>
570
 
            
571
 
                <li><a href="..&#x2F;classes/Test.DateAssert.html">Test.DateAssert</a></li>
572
 
            
573
 
                <li><a href="..&#x2F;classes/Test.EventTarget.html">Test.EventTarget</a></li>
574
 
            
575
 
                <li><a href="..&#x2F;classes/Test.Mock.Mock.html">Test.Mock.Mock</a></li>
576
 
            
577
 
                <li><a href="..&#x2F;classes/Test.Mock.Value.html">Test.Mock.Value</a></li>
578
 
            
579
 
                <li><a href="..&#x2F;classes/Test.ObjectAssert.html">Test.ObjectAssert</a></li>
580
 
            
581
 
                <li><a href="..&#x2F;classes/Test.Reporter.html">Test.Reporter</a></li>
582
 
            
583
 
                <li><a href="..&#x2F;classes/Test.Results.html">Test.Results</a></li>
584
 
            
585
 
                <li><a href="..&#x2F;classes/Test.Runner.html">Test.Runner</a></li>
586
 
            
587
 
                <li><a href="..&#x2F;classes/Test.ShouldError.html">Test.ShouldError</a></li>
588
 
            
589
 
                <li><a href="..&#x2F;classes/Test.ShouldFail.html">Test.ShouldFail</a></li>
590
 
            
591
 
                <li><a href="..&#x2F;classes/Test.TestCase.html">Test.TestCase</a></li>
592
 
            
593
 
                <li><a href="..&#x2F;classes/Test.TestFormat.html">Test.TestFormat</a></li>
594
 
            
595
 
                <li><a href="..&#x2F;classes/Test.TestNode.html">Test.TestNode</a></li>
596
 
            
597
 
                <li><a href="..&#x2F;classes/Test.TestRunner.html">Test.TestRunner</a></li>
598
 
            
599
 
                <li><a href="..&#x2F;classes/Test.TestSuite.html">Test.TestSuite</a></li>
600
 
            
601
 
                <li><a href="..&#x2F;classes/Test.UnexpectedError.html">Test.UnexpectedError</a></li>
602
 
            
603
 
                <li><a href="..&#x2F;classes/Test.UnexpectedValue.html">Test.UnexpectedValue</a></li>
604
 
            
605
 
                <li><a href="..&#x2F;classes/Test.Wait.html">Test.Wait</a></li>
606
 
            
607
 
                <li><a href="..&#x2F;classes/Text.AccentFold.html">Text.AccentFold</a></li>
608
 
            
609
 
                <li><a href="..&#x2F;classes/Text.WordBreak.html">Text.WordBreak</a></li>
610
 
            
611
 
                <li><a href="..&#x2F;classes/TimeAxis.html">TimeAxis</a></li>
612
 
            
613
 
                <li><a href="..&#x2F;classes/ToggleButton.html">ToggleButton</a></li>
614
 
            
615
 
                <li><a href="..&#x2F;classes/TopAxisLayout.html">TopAxisLayout</a></li>
616
 
            
617
 
                <li><a href="..&#x2F;classes/Transition.html">Transition</a></li>
618
 
            
619
 
                <li><a href="..&#x2F;classes/UA.html">UA</a></li>
620
 
            
621
 
                <li><a href="..&#x2F;classes/Uploader.html">Uploader</a></li>
622
 
            
623
 
                <li><a href="..&#x2F;classes/Uploader.Queue.html">Uploader.Queue</a></li>
624
 
            
625
 
                <li><a href="..&#x2F;classes/UploaderFlash.html">UploaderFlash</a></li>
626
 
            
627
 
                <li><a href="..&#x2F;classes/UploaderHTML5.html">UploaderHTML5</a></li>
628
 
            
629
 
                <li><a href="..&#x2F;classes/ValueChange.html">ValueChange</a></li>
630
 
            
631
 
                <li><a href="..&#x2F;classes/VerticalLegendLayout.html">VerticalLegendLayout</a></li>
632
 
            
633
 
                <li><a href="..&#x2F;classes/View.html">View</a></li>
634
 
            
635
 
                <li><a href="..&#x2F;classes/View.NodeMap.html">View.NodeMap</a></li>
636
 
            
637
 
                <li><a href="..&#x2F;classes/VMLCircle.html">VMLCircle</a></li>
638
 
            
639
 
                <li><a href="..&#x2F;classes/VMLDrawing.html">VMLDrawing</a></li>
640
 
            
641
 
                <li><a href="..&#x2F;classes/VMLEllipse.html">VMLEllipse</a></li>
642
 
            
643
 
                <li><a href="..&#x2F;classes/VMLGraphic.html">VMLGraphic</a></li>
644
 
            
645
 
                <li><a href="..&#x2F;classes/VMLPath.html">VMLPath</a></li>
646
 
            
647
 
                <li><a href="..&#x2F;classes/VMLPieSlice.html">VMLPieSlice</a></li>
648
 
            
649
 
                <li><a href="..&#x2F;classes/VMLRect.html">VMLRect</a></li>
650
 
            
651
 
                <li><a href="..&#x2F;classes/VMLShape.html">VMLShape</a></li>
652
 
            
653
 
                <li><a href="..&#x2F;classes/Widget.html">Widget</a></li>
654
 
            
655
 
                <li><a href="..&#x2F;classes/WidgetAutohide.html">WidgetAutohide</a></li>
656
 
            
657
 
                <li><a href="..&#x2F;classes/WidgetButtons.html">WidgetButtons</a></li>
658
 
            
659
 
                <li><a href="..&#x2F;classes/WidgetChild.html">WidgetChild</a></li>
660
 
            
661
 
                <li><a href="..&#x2F;classes/WidgetModality.html">WidgetModality</a></li>
662
 
            
663
 
                <li><a href="..&#x2F;classes/WidgetParent.html">WidgetParent</a></li>
664
 
            
665
 
                <li><a href="..&#x2F;classes/WidgetPosition.html">WidgetPosition</a></li>
666
 
            
667
 
                <li><a href="..&#x2F;classes/WidgetPositionAlign.html">WidgetPositionAlign</a></li>
668
 
            
669
 
                <li><a href="..&#x2F;classes/WidgetPositionConstrain.html">WidgetPositionConstrain</a></li>
670
 
            
671
 
                <li><a href="..&#x2F;classes/WidgetStack.html">WidgetStack</a></li>
672
 
            
673
 
                <li><a href="..&#x2F;classes/WidgetStdMod.html">WidgetStdMod</a></li>
674
 
            
675
 
                <li><a href="..&#x2F;classes/YQL.html">YQL</a></li>
676
 
            
677
 
                <li><a href="..&#x2F;classes/YQLRequest.html">YQLRequest</a></li>
678
 
            
679
 
                <li><a href="..&#x2F;classes/YUI.html">YUI</a></li>
680
 
            
681
 
                <li><a href="..&#x2F;classes/YUI~substitute.html">YUI~substitute</a></li>
682
 
            
683
 
            </ul>
684
 
 
685
 
            <ul id="api-modules" class="apis modules">
686
 
            
687
 
                <li><a href="..&#x2F;modules/align-plugin.html">align-plugin</a></li>
688
 
            
689
 
                <li><a href="..&#x2F;modules/anim.html">anim</a></li>
690
 
            
691
 
                <li><a href="..&#x2F;modules/anim-base.html">anim-base</a></li>
692
 
            
693
 
                <li><a href="..&#x2F;modules/anim-color.html">anim-color</a></li>
694
 
            
695
 
                <li><a href="..&#x2F;modules/anim-curve.html">anim-curve</a></li>
696
 
            
697
 
                <li><a href="..&#x2F;modules/anim-easing.html">anim-easing</a></li>
698
 
            
699
 
                <li><a href="..&#x2F;modules/anim-node-plugin.html">anim-node-plugin</a></li>
700
 
            
701
 
                <li><a href="..&#x2F;modules/anim-scroll.html">anim-scroll</a></li>
702
 
            
703
 
                <li><a href="..&#x2F;modules/anim-xy.html">anim-xy</a></li>
704
 
            
705
 
                <li><a href="..&#x2F;modules/app.html">app</a></li>
706
 
            
707
 
                <li><a href="..&#x2F;modules/app-base.html">app-base</a></li>
708
 
            
709
 
                <li><a href="..&#x2F;modules/app-transitions.html">app-transitions</a></li>
710
 
            
711
 
                <li><a href="..&#x2F;modules/app-transitions-native.html">app-transitions-native</a></li>
712
 
            
713
 
                <li><a href="..&#x2F;modules/array-extras.html">array-extras</a></li>
714
 
            
715
 
                <li><a href="..&#x2F;modules/array-invoke.html">array-invoke</a></li>
716
 
            
717
 
                <li><a href="..&#x2F;modules/arraylist.html">arraylist</a></li>
718
 
            
719
 
                <li><a href="..&#x2F;modules/arraylist-add.html">arraylist-add</a></li>
720
 
            
721
 
                <li><a href="..&#x2F;modules/arraylist-filter.html">arraylist-filter</a></li>
722
 
            
723
 
                <li><a href="..&#x2F;modules/arraysort.html">arraysort</a></li>
724
 
            
725
 
                <li><a href="..&#x2F;modules/async-queue.html">async-queue</a></li>
726
 
            
727
 
                <li><a href="..&#x2F;modules/attribute.html">attribute</a></li>
728
 
            
729
 
                <li><a href="..&#x2F;modules/attribute-base.html">attribute-base</a></li>
730
 
            
731
 
                <li><a href="..&#x2F;modules/attribute-complex.html">attribute-complex</a></li>
732
 
            
733
 
                <li><a href="..&#x2F;modules/attribute-core.html">attribute-core</a></li>
734
 
            
735
 
                <li><a href="..&#x2F;modules/attribute-events.html">attribute-events</a></li>
736
 
            
737
 
                <li><a href="..&#x2F;modules/attribute-extras.html">attribute-extras</a></li>
738
 
            
739
 
                <li><a href="..&#x2F;modules/autocomplete.html">autocomplete</a></li>
740
 
            
741
 
                <li><a href="..&#x2F;modules/autocomplete-base.html">autocomplete-base</a></li>
742
 
            
743
 
                <li><a href="..&#x2F;modules/autocomplete-filters.html">autocomplete-filters</a></li>
744
 
            
745
 
                <li><a href="..&#x2F;modules/autocomplete-filters-accentfold.html">autocomplete-filters-accentfold</a></li>
746
 
            
747
 
                <li><a href="..&#x2F;modules/autocomplete-highlighters.html">autocomplete-highlighters</a></li>
748
 
            
749
 
                <li><a href="..&#x2F;modules/autocomplete-highlighters-accentfold.html">autocomplete-highlighters-accentfold</a></li>
750
 
            
751
 
                <li><a href="..&#x2F;modules/autocomplete-list.html">autocomplete-list</a></li>
752
 
            
753
 
                <li><a href="..&#x2F;modules/autocomplete-list-keys.html">autocomplete-list-keys</a></li>
754
 
            
755
 
                <li><a href="..&#x2F;modules/autocomplete-plugin.html">autocomplete-plugin</a></li>
756
 
            
757
 
                <li><a href="..&#x2F;modules/autocomplete-sources.html">autocomplete-sources</a></li>
758
 
            
759
 
                <li><a href="..&#x2F;modules/base.html">base</a></li>
760
 
            
761
 
                <li><a href="..&#x2F;modules/base-base.html">base-base</a></li>
762
 
            
763
 
                <li><a href="..&#x2F;modules/base-build.html">base-build</a></li>
764
 
            
765
 
                <li><a href="..&#x2F;modules/base-core.html">base-core</a></li>
766
 
            
767
 
                <li><a href="..&#x2F;modules/base-pluginhost.html">base-pluginhost</a></li>
768
 
            
769
 
                <li><a href="..&#x2F;modules/button.html">button</a></li>
770
 
            
771
 
                <li><a href="..&#x2F;modules/button-core.html">button-core</a></li>
772
 
            
773
 
                <li><a href="..&#x2F;modules/button-group.html">button-group</a></li>
774
 
            
775
 
                <li><a href="..&#x2F;modules/button-plugin.html">button-plugin</a></li>
776
 
            
777
 
                <li><a href="..&#x2F;modules/cache.html">cache</a></li>
778
 
            
779
 
                <li><a href="..&#x2F;modules/cache-base.html">cache-base</a></li>
780
 
            
781
 
                <li><a href="..&#x2F;modules/cache-offline.html">cache-offline</a></li>
782
 
            
783
 
                <li><a href="..&#x2F;modules/cache-plugin.html">cache-plugin</a></li>
784
 
            
785
 
                <li><a href="..&#x2F;modules/calendar.html">calendar</a></li>
786
 
            
787
 
                <li><a href="..&#x2F;modules/calendar-base.html">calendar-base</a></li>
788
 
            
789
 
                <li><a href="..&#x2F;modules/calendarnavigator.html">calendarnavigator</a></li>
790
 
            
791
 
                <li><a href="..&#x2F;modules/charts.html">charts</a></li>
792
 
            
793
 
                <li><a href="..&#x2F;modules/charts-legend.html">charts-legend</a></li>
794
 
            
795
 
                <li><a href="..&#x2F;modules/classnamemanager.html">classnamemanager</a></li>
796
 
            
797
 
                <li><a href="..&#x2F;modules/clickable-rail.html">clickable-rail</a></li>
798
 
            
799
 
                <li><a href="..&#x2F;modules/collection.html">collection</a></li>
800
 
            
801
 
                <li><a href="..&#x2F;modules/console.html">console</a></li>
802
 
            
803
 
                <li><a href="..&#x2F;modules/console-filters.html">console-filters</a></li>
804
 
            
805
 
                <li><a href="..&#x2F;modules/cookie.html">cookie</a></li>
806
 
            
807
 
                <li><a href="..&#x2F;modules/createlink-base.html">createlink-base</a></li>
808
 
            
809
 
                <li><a href="..&#x2F;modules/dataschema.html">dataschema</a></li>
810
 
            
811
 
                <li><a href="..&#x2F;modules/dataschema-array.html">dataschema-array</a></li>
812
 
            
813
 
                <li><a href="..&#x2F;modules/dataschema-base.html">dataschema-base</a></li>
814
 
            
815
 
                <li><a href="..&#x2F;modules/dataschema-json.html">dataschema-json</a></li>
816
 
            
817
 
                <li><a href="..&#x2F;modules/dataschema-text.html">dataschema-text</a></li>
818
 
            
819
 
                <li><a href="..&#x2F;modules/dataschema-xml.html">dataschema-xml</a></li>
820
 
            
821
 
                <li><a href="..&#x2F;modules/datasource.html">datasource</a></li>
822
 
            
823
 
                <li><a href="..&#x2F;modules/datasource-arrayschema.html">datasource-arrayschema</a></li>
824
 
            
825
 
                <li><a href="..&#x2F;modules/datasource-cache.html">datasource-cache</a></li>
826
 
            
827
 
                <li><a href="..&#x2F;modules/datasource-function.html">datasource-function</a></li>
828
 
            
829
 
                <li><a href="..&#x2F;modules/datasource-get.html">datasource-get</a></li>
830
 
            
831
 
                <li><a href="..&#x2F;modules/datasource-io.html">datasource-io</a></li>
832
 
            
833
 
                <li><a href="..&#x2F;modules/datasource-jsonschema.html">datasource-jsonschema</a></li>
834
 
            
835
 
                <li><a href="..&#x2F;modules/datasource-local.html">datasource-local</a></li>
836
 
            
837
 
                <li><a href="..&#x2F;modules/datasource-polling.html">datasource-polling</a></li>
838
 
            
839
 
                <li><a href="..&#x2F;modules/datasource-textschema.html">datasource-textschema</a></li>
840
 
            
841
 
                <li><a href="..&#x2F;modules/datasource-xmlschema.html">datasource-xmlschema</a></li>
842
 
            
843
 
                <li><a href="..&#x2F;modules/datatable.html">datatable</a></li>
844
 
            
845
 
                <li><a href="..&#x2F;modules/datatable-base.html">datatable-base</a></li>
846
 
            
847
 
                <li><a href="..&#x2F;modules/datatable-base-deprecated.html">datatable-base-deprecated</a></li>
848
 
            
849
 
                <li><a href="..&#x2F;modules/datatable-body.html">datatable-body</a></li>
850
 
            
851
 
                <li><a href="..&#x2F;modules/datatable-column-widths.html">datatable-column-widths</a></li>
852
 
            
853
 
                <li><a href="..&#x2F;modules/datatable-core.html">datatable-core</a></li>
854
 
            
855
 
                <li><a href="..&#x2F;modules/datatable-datasource.html">datatable-datasource</a></li>
856
 
            
857
 
                <li><a href="..&#x2F;modules/datatable-datasource-deprecated.html">datatable-datasource-deprecated</a></li>
858
 
            
859
 
                <li><a href="..&#x2F;modules/datatable-deprecated.html">datatable-deprecated</a></li>
860
 
            
861
 
                <li><a href="..&#x2F;modules/datatable-head.html">datatable-head</a></li>
862
 
            
863
 
                <li><a href="..&#x2F;modules/datatable-message.html">datatable-message</a></li>
864
 
            
865
 
                <li><a href="..&#x2F;modules/datatable-mutable.html">datatable-mutable</a></li>
866
 
            
867
 
                <li><a href="..&#x2F;modules/datatable-scroll.html">datatable-scroll</a></li>
868
 
            
869
 
                <li><a href="..&#x2F;modules/datatable-scroll-deprecated.html">datatable-scroll-deprecated</a></li>
870
 
            
871
 
                <li><a href="..&#x2F;modules/datatable-sort.html">datatable-sort</a></li>
872
 
            
873
 
                <li><a href="..&#x2F;modules/datatable-sort-deprecated.html">datatable-sort-deprecated</a></li>
874
 
            
875
 
                <li><a href="..&#x2F;modules/datatype.html">datatype</a></li>
876
 
            
877
 
                <li><a href="..&#x2F;modules/datatype-date.html">datatype-date</a></li>
878
 
            
879
 
                <li><a href="..&#x2F;modules/datatype-date-format.html">datatype-date-format</a></li>
880
 
            
881
 
                <li><a href="..&#x2F;modules/datatype-date-math.html">datatype-date-math</a></li>
882
 
            
883
 
                <li><a href="..&#x2F;modules/datatype-date-parse.html">datatype-date-parse</a></li>
884
 
            
885
 
                <li><a href="..&#x2F;modules/datatype-number.html">datatype-number</a></li>
886
 
            
887
 
                <li><a href="..&#x2F;modules/datatype-number-format.html">datatype-number-format</a></li>
888
 
            
889
 
                <li><a href="..&#x2F;modules/datatype-number-parse.html">datatype-number-parse</a></li>
890
 
            
891
 
                <li><a href="..&#x2F;modules/datatype-xml.html">datatype-xml</a></li>
892
 
            
893
 
                <li><a href="..&#x2F;modules/datatype-xml-format.html">datatype-xml-format</a></li>
894
 
            
895
 
                <li><a href="..&#x2F;modules/datatype-xml-parse.html">datatype-xml-parse</a></li>
896
 
            
897
 
                <li><a href="..&#x2F;modules/dd.html">dd</a></li>
898
 
            
899
 
                <li><a href="..&#x2F;modules/dd-constrain.html">dd-constrain</a></li>
900
 
            
901
 
                <li><a href="..&#x2F;modules/dd-ddm.html">dd-ddm</a></li>
902
 
            
903
 
                <li><a href="..&#x2F;modules/dd-ddm-base.html">dd-ddm-base</a></li>
904
 
            
905
 
                <li><a href="..&#x2F;modules/dd-ddm-drop.html">dd-ddm-drop</a></li>
906
 
            
907
 
                <li><a href="..&#x2F;modules/dd-delegate.html">dd-delegate</a></li>
908
 
            
909
 
                <li><a href="..&#x2F;modules/dd-drag.html">dd-drag</a></li>
910
 
            
911
 
                <li><a href="..&#x2F;modules/dd-drop.html">dd-drop</a></li>
912
 
            
913
 
                <li><a href="..&#x2F;modules/dd-drop-plugin.html">dd-drop-plugin</a></li>
914
 
            
915
 
                <li><a href="..&#x2F;modules/dd-plugin.html">dd-plugin</a></li>
916
 
            
917
 
                <li><a href="..&#x2F;modules/dd-proxy.html">dd-proxy</a></li>
918
 
            
919
 
                <li><a href="..&#x2F;modules/dd-scroll.html">dd-scroll</a></li>
920
 
            
921
 
                <li><a href="..&#x2F;modules/dial.html">dial</a></li>
922
 
            
923
 
                <li><a href="..&#x2F;modules/dom.html">dom</a></li>
924
 
            
925
 
                <li><a href="..&#x2F;modules/dom-base.html">dom-base</a></li>
926
 
            
927
 
                <li><a href="..&#x2F;modules/dom-screen.html">dom-screen</a></li>
928
 
            
929
 
                <li><a href="..&#x2F;modules/dom-style.html">dom-style</a></li>
930
 
            
931
 
                <li><a href="..&#x2F;modules/dump.html">dump</a></li>
932
 
            
933
 
                <li><a href="..&#x2F;modules/editor.html">editor</a></li>
934
 
            
935
 
                <li><a href="..&#x2F;modules/editor-base.html">editor-base</a></li>
936
 
            
937
 
                <li><a href="..&#x2F;modules/editor-bidi.html">editor-bidi</a></li>
938
 
            
939
 
                <li><a href="..&#x2F;modules/editor-br.html">editor-br</a></li>
940
 
            
941
 
                <li><a href="..&#x2F;modules/editor-lists.html">editor-lists</a></li>
942
 
            
943
 
                <li><a href="..&#x2F;modules/editor-para.html">editor-para</a></li>
944
 
            
945
 
                <li><a href="..&#x2F;modules/editor-para-base.html">editor-para-base</a></li>
946
 
            
947
 
                <li><a href="..&#x2F;modules/editor-para-ie.html">editor-para-ie</a></li>
948
 
            
949
 
                <li><a href="..&#x2F;modules/editor-tab.html">editor-tab</a></li>
950
 
            
951
 
                <li><a href="..&#x2F;modules/escape.html">escape</a></li>
952
 
            
953
 
                <li><a href="..&#x2F;modules/event.html">event</a></li>
954
 
            
955
 
                <li><a href="..&#x2F;modules/event-base.html">event-base</a></li>
956
 
            
957
 
                <li><a href="..&#x2F;modules/event-contextmenu.html">event-contextmenu</a></li>
958
 
            
959
 
                <li><a href="..&#x2F;modules/event-custom.html">event-custom</a></li>
960
 
            
961
 
                <li><a href="..&#x2F;modules/event-custom-base.html">event-custom-base</a></li>
962
 
            
963
 
                <li><a href="..&#x2F;modules/event-custom-complex.html">event-custom-complex</a></li>
964
 
            
965
 
                <li><a href="..&#x2F;modules/event-delegate.html">event-delegate</a></li>
966
 
            
967
 
                <li><a href="..&#x2F;modules/event-flick.html">event-flick</a></li>
968
 
            
969
 
                <li><a href="..&#x2F;modules/event-focus.html">event-focus</a></li>
970
 
            
971
 
                <li><a href="..&#x2F;modules/event-gestures.html">event-gestures</a></li>
972
 
            
973
 
                <li><a href="..&#x2F;modules/event-hover.html">event-hover</a></li>
974
 
            
975
 
                <li><a href="..&#x2F;modules/event-key.html">event-key</a></li>
976
 
            
977
 
                <li><a href="..&#x2F;modules/event-mouseenter.html">event-mouseenter</a></li>
978
 
            
979
 
                <li><a href="..&#x2F;modules/event-mousewheel.html">event-mousewheel</a></li>
980
 
            
981
 
                <li><a href="..&#x2F;modules/event-move.html">event-move</a></li>
982
 
            
983
 
                <li><a href="..&#x2F;modules/event-outside.html">event-outside</a></li>
984
 
            
985
 
                <li><a href="..&#x2F;modules/event-resize.html">event-resize</a></li>
986
 
            
987
 
                <li><a href="..&#x2F;modules/event-simulate.html">event-simulate</a></li>
988
 
            
989
 
                <li><a href="..&#x2F;modules/event-synthetic.html">event-synthetic</a></li>
990
 
            
991
 
                <li><a href="..&#x2F;modules/event-touch.html">event-touch</a></li>
992
 
            
993
 
                <li><a href="..&#x2F;modules/event-valuechange.html">event-valuechange</a></li>
994
 
            
995
 
                <li><a href="..&#x2F;modules/exec-command.html">exec-command</a></li>
996
 
            
997
 
                <li><a href="..&#x2F;modules/features.html">features</a></li>
998
 
            
999
 
                <li><a href="..&#x2F;modules/file.html">file</a></li>
1000
 
            
1001
 
                <li><a href="..&#x2F;modules/file-flash.html">file-flash</a></li>
1002
 
            
1003
 
                <li><a href="..&#x2F;modules/file-html5.html">file-html5</a></li>
1004
 
            
1005
 
                <li><a href="..&#x2F;modules/frame.html">frame</a></li>
1006
 
            
1007
 
                <li><a href="..&#x2F;modules/get.html">get</a></li>
1008
 
            
1009
 
                <li><a href="..&#x2F;modules/get-nodejs.html">get-nodejs</a></li>
1010
 
            
1011
 
                <li><a href="..&#x2F;modules/graphics.html">graphics</a></li>
1012
 
            
1013
 
                <li><a href="..&#x2F;modules/handlebars.html">handlebars</a></li>
1014
 
            
1015
 
                <li><a href="..&#x2F;modules/handlebars-base.html">handlebars-base</a></li>
1016
 
            
1017
 
                <li><a href="..&#x2F;modules/handlebars-compiler.html">handlebars-compiler</a></li>
1018
 
            
1019
 
                <li><a href="..&#x2F;modules/highlight.html">highlight</a></li>
1020
 
            
1021
 
                <li><a href="..&#x2F;modules/highlight-accentfold.html">highlight-accentfold</a></li>
1022
 
            
1023
 
                <li><a href="..&#x2F;modules/highlight-base.html">highlight-base</a></li>
1024
 
            
1025
 
                <li><a href="..&#x2F;modules/history.html">history</a></li>
1026
 
            
1027
 
                <li><a href="..&#x2F;modules/history-base.html">history-base</a></li>
1028
 
            
1029
 
                <li><a href="..&#x2F;modules/history-hash.html">history-hash</a></li>
1030
 
            
1031
 
                <li><a href="..&#x2F;modules/history-hash-ie.html">history-hash-ie</a></li>
1032
 
            
1033
 
                <li><a href="..&#x2F;modules/history-html5.html">history-html5</a></li>
1034
 
            
1035
 
                <li><a href="..&#x2F;modules/imageloader.html">imageloader</a></li>
1036
 
            
1037
 
                <li><a href="..&#x2F;modules/intl.html">intl</a></li>
1038
 
            
1039
 
                <li><a href="..&#x2F;modules/io.html">io</a></li>
1040
 
            
1041
 
                <li><a href="..&#x2F;modules/io-base.html">io-base</a></li>
1042
 
            
1043
 
                <li><a href="..&#x2F;modules/io-form.html">io-form</a></li>
1044
 
            
1045
 
                <li><a href="..&#x2F;modules/io-queue.html">io-queue</a></li>
1046
 
            
1047
 
                <li><a href="..&#x2F;modules/io-upload-iframe.html">io-upload-iframe</a></li>
1048
 
            
1049
 
                <li><a href="..&#x2F;modules/io-xdr.html">io-xdr</a></li>
1050
 
            
1051
 
                <li><a href="..&#x2F;modules/json.html">json</a></li>
1052
 
            
1053
 
                <li><a href="..&#x2F;modules/json-parse.html">json-parse</a></li>
1054
 
            
1055
 
                <li><a href="..&#x2F;modules/json-stringify.html">json-stringify</a></li>
1056
 
            
1057
 
                <li><a href="..&#x2F;modules/jsonp.html">jsonp</a></li>
1058
 
            
1059
 
                <li><a href="..&#x2F;modules/jsonp-url.html">jsonp-url</a></li>
1060
 
            
1061
 
                <li><a href="..&#x2F;modules/loader.html">loader</a></li>
1062
 
            
1063
 
                <li><a href="..&#x2F;modules/loader-base.html">loader-base</a></li>
1064
 
            
1065
 
                <li><a href="..&#x2F;modules/matrix.html">matrix</a></li>
1066
 
            
1067
 
                <li><a href="..&#x2F;modules/model.html">model</a></li>
1068
 
            
1069
 
                <li><a href="..&#x2F;modules/model-list.html">model-list</a></li>
1070
 
            
1071
 
                <li><a href="..&#x2F;modules/node.html">node</a></li>
1072
 
            
1073
 
                <li><a href="..&#x2F;modules/node-base.html">node-base</a></li>
1074
 
            
1075
 
                <li><a href="..&#x2F;modules/node-core.html">node-core</a></li>
1076
 
            
1077
 
                <li><a href="..&#x2F;modules/node-data.html">node-data</a></li>
1078
 
            
1079
 
                <li><a href="..&#x2F;modules/node-deprecated.html">node-deprecated</a></li>
1080
 
            
1081
 
                <li><a href="..&#x2F;modules/node-event-delegate.html">node-event-delegate</a></li>
1082
 
            
1083
 
                <li><a href="..&#x2F;modules/node-event-html5.html">node-event-html5</a></li>
1084
 
            
1085
 
                <li><a href="..&#x2F;modules/node-event-simulate.html">node-event-simulate</a></li>
1086
 
            
1087
 
                <li><a href="..&#x2F;modules/node-flick.html">node-flick</a></li>
1088
 
            
1089
 
                <li><a href="..&#x2F;modules/node-focusmanager.html">node-focusmanager</a></li>
1090
 
            
1091
 
                <li><a href="..&#x2F;modules/node-load.html">node-load</a></li>
1092
 
            
1093
 
                <li><a href="..&#x2F;modules/node-menunav.html">node-menunav</a></li>
1094
 
            
1095
 
                <li><a href="..&#x2F;modules/node-pluginhost.html">node-pluginhost</a></li>
1096
 
            
1097
 
                <li><a href="..&#x2F;modules/node-screen.html">node-screen</a></li>
1098
 
            
1099
 
                <li><a href="..&#x2F;modules/node-style.html">node-style</a></li>
1100
 
            
1101
 
                <li><a href="..&#x2F;modules/oop.html">oop</a></li>
1102
 
            
1103
 
                <li><a href="..&#x2F;modules/overlay.html">overlay</a></li>
1104
 
            
1105
 
                <li><a href="..&#x2F;modules/panel.html">panel</a></li>
1106
 
            
1107
 
                <li><a href="..&#x2F;modules/parallel.html">parallel</a></li>
1108
 
            
1109
 
                <li><a href="..&#x2F;modules/pjax.html">pjax</a></li>
1110
 
            
1111
 
                <li><a href="..&#x2F;modules/pjax-base.html">pjax-base</a></li>
1112
 
            
1113
 
                <li><a href="..&#x2F;modules/pjax-plugin.html">pjax-plugin</a></li>
1114
 
            
1115
 
                <li><a href="..&#x2F;modules/plugin.html">plugin</a></li>
1116
 
            
1117
 
                <li><a href="..&#x2F;modules/pluginhost.html">pluginhost</a></li>
1118
 
            
1119
 
                <li><a href="..&#x2F;modules/pluginhost-base.html">pluginhost-base</a></li>
1120
 
            
1121
 
                <li><a href="..&#x2F;modules/pluginhost-config.html">pluginhost-config</a></li>
1122
 
            
1123
 
                <li><a href="..&#x2F;modules/profiler.html">profiler</a></li>
1124
 
            
1125
 
                <li><a href="..&#x2F;modules/querystring.html">querystring</a></li>
1126
 
            
1127
 
                <li><a href="..&#x2F;modules/querystring-parse.html">querystring-parse</a></li>
1128
 
            
1129
 
                <li><a href="..&#x2F;modules/querystring-parse-simple.html">querystring-parse-simple</a></li>
1130
 
            
1131
 
                <li><a href="..&#x2F;modules/querystring-stringify.html">querystring-stringify</a></li>
1132
 
            
1133
 
                <li><a href="..&#x2F;modules/querystring-stringify-simple.html">querystring-stringify-simple</a></li>
1134
 
            
1135
 
                <li><a href="..&#x2F;modules/queue-promote.html">queue-promote</a></li>
1136
 
            
1137
 
                <li><a href="..&#x2F;modules/range-slider.html">range-slider</a></li>
1138
 
            
1139
 
                <li><a href="..&#x2F;modules/recordset.html">recordset</a></li>
1140
 
            
1141
 
                <li><a href="..&#x2F;modules/recordset-base.html">recordset-base</a></li>
1142
 
            
1143
 
                <li><a href="..&#x2F;modules/recordset-filter.html">recordset-filter</a></li>
1144
 
            
1145
 
                <li><a href="..&#x2F;modules/recordset-indexer.html">recordset-indexer</a></li>
1146
 
            
1147
 
                <li><a href="..&#x2F;modules/recordset-sort.html">recordset-sort</a></li>
1148
 
            
1149
 
                <li><a href="..&#x2F;modules/resize.html">resize</a></li>
1150
 
            
1151
 
                <li><a href="..&#x2F;modules/resize-contrain.html">resize-contrain</a></li>
1152
 
            
1153
 
                <li><a href="..&#x2F;modules/resize-plugin.html">resize-plugin</a></li>
1154
 
            
1155
 
                <li><a href="..&#x2F;modules/resize-proxy.html">resize-proxy</a></li>
1156
 
            
1157
 
                <li><a href="..&#x2F;modules/rollup.html">rollup</a></li>
1158
 
            
1159
 
                <li><a href="..&#x2F;modules/router.html">router</a></li>
1160
 
            
1161
 
                <li><a href="..&#x2F;modules/scrollview.html">scrollview</a></li>
1162
 
            
1163
 
                <li><a href="..&#x2F;modules/scrollview-base.html">scrollview-base</a></li>
1164
 
            
1165
 
                <li><a href="..&#x2F;modules/scrollview-base-ie.html">scrollview-base-ie</a></li>
1166
 
            
1167
 
                <li><a href="..&#x2F;modules/scrollview-list.html">scrollview-list</a></li>
1168
 
            
1169
 
                <li><a href="..&#x2F;modules/scrollview-paginator.html">scrollview-paginator</a></li>
1170
 
            
1171
 
                <li><a href="..&#x2F;modules/scrollview-scrollbars.html">scrollview-scrollbars</a></li>
1172
 
            
1173
 
                <li><a href="..&#x2F;modules/selection.html">selection</a></li>
1174
 
            
1175
 
                <li><a href="..&#x2F;modules/selector-css2.html">selector-css2</a></li>
1176
 
            
1177
 
                <li><a href="..&#x2F;modules/selector-css3.html">selector-css3</a></li>
1178
 
            
1179
 
                <li><a href="..&#x2F;modules/selector-native.html">selector-native</a></li>
1180
 
            
1181
 
                <li><a href="..&#x2F;modules/shim-plugin.html">shim-plugin</a></li>
1182
 
            
1183
 
                <li><a href="..&#x2F;modules/slider.html">slider</a></li>
1184
 
            
1185
 
                <li><a href="..&#x2F;modules/slider-base.html">slider-base</a></li>
1186
 
            
1187
 
                <li><a href="..&#x2F;modules/slider-value-range.html">slider-value-range</a></li>
1188
 
            
1189
 
                <li><a href="..&#x2F;modules/sortable.html">sortable</a></li>
1190
 
            
1191
 
                <li><a href="..&#x2F;modules/sortable-scroll.html">sortable-scroll</a></li>
1192
 
            
1193
 
                <li><a href="..&#x2F;modules/stylesheet.html">stylesheet</a></li>
1194
 
            
1195
 
                <li><a href="..&#x2F;modules/substitute.html">substitute</a></li>
1196
 
            
1197
 
                <li><a href="..&#x2F;modules/swf.html">swf</a></li>
1198
 
            
1199
 
                <li><a href="..&#x2F;modules/swfdetect.html">swfdetect</a></li>
1200
 
            
1201
 
                <li><a href="..&#x2F;modules/tabview.html">tabview</a></li>
1202
 
            
1203
 
                <li><a href="..&#x2F;modules/test.html">test</a></li>
1204
 
            
1205
 
                <li><a href="..&#x2F;modules/test-console.html">test-console</a></li>
1206
 
            
1207
 
                <li><a href="..&#x2F;modules/text.html">text</a></li>
1208
 
            
1209
 
                <li><a href="..&#x2F;modules/text-accentfold.html">text-accentfold</a></li>
1210
 
            
1211
 
                <li><a href="..&#x2F;modules/text-wordbreak.html">text-wordbreak</a></li>
1212
 
            
1213
 
                <li><a href="..&#x2F;modules/transition.html">transition</a></li>
1214
 
            
1215
 
                <li><a href="..&#x2F;modules/uploader.html">uploader</a></li>
1216
 
            
1217
 
                <li><a href="..&#x2F;modules/uploader-deprecated.html">uploader-deprecated</a></li>
1218
 
            
1219
 
                <li><a href="..&#x2F;modules/uploader-flash.html">uploader-flash</a></li>
1220
 
            
1221
 
                <li><a href="..&#x2F;modules/uploader-html5.html">uploader-html5</a></li>
1222
 
            
1223
 
                <li><a href="..&#x2F;modules/uploader-queue.html">uploader-queue</a></li>
1224
 
            
1225
 
                <li><a href="..&#x2F;modules/view.html">view</a></li>
1226
 
            
1227
 
                <li><a href="..&#x2F;modules/view-node-map.html">view-node-map</a></li>
1228
 
            
1229
 
                <li><a href="..&#x2F;modules/widget.html">widget</a></li>
1230
 
            
1231
 
                <li><a href="..&#x2F;modules/widget-anim.html">widget-anim</a></li>
1232
 
            
1233
 
                <li><a href="..&#x2F;modules/widget-autohide.html">widget-autohide</a></li>
1234
 
            
1235
 
                <li><a href="..&#x2F;modules/widget-base.html">widget-base</a></li>
1236
 
            
1237
 
                <li><a href="..&#x2F;modules/widget-base-ie.html">widget-base-ie</a></li>
1238
 
            
1239
 
                <li><a href="..&#x2F;modules/widget-buttons.html">widget-buttons</a></li>
1240
 
            
1241
 
                <li><a href="..&#x2F;modules/widget-child.html">widget-child</a></li>
1242
 
            
1243
 
                <li><a href="..&#x2F;modules/widget-htmlparser.html">widget-htmlparser</a></li>
1244
 
            
1245
 
                <li><a href="..&#x2F;modules/widget-locale.html">widget-locale</a></li>
1246
 
            
1247
 
                <li><a href="..&#x2F;modules/widget-modality.html">widget-modality</a></li>
1248
 
            
1249
 
                <li><a href="..&#x2F;modules/widget-parent.html">widget-parent</a></li>
1250
 
            
1251
 
                <li><a href="..&#x2F;modules/widget-position.html">widget-position</a></li>
1252
 
            
1253
 
                <li><a href="..&#x2F;modules/widget-position-align.html">widget-position-align</a></li>
1254
 
            
1255
 
                <li><a href="..&#x2F;modules/widget-position-constrain.html">widget-position-constrain</a></li>
1256
 
            
1257
 
                <li><a href="..&#x2F;modules/widget-skin.html">widget-skin</a></li>
1258
 
            
1259
 
                <li><a href="..&#x2F;modules/widget-stack.html">widget-stack</a></li>
1260
 
            
1261
 
                <li><a href="..&#x2F;modules/widget-stdmod.html">widget-stdmod</a></li>
1262
 
            
1263
 
                <li><a href="..&#x2F;modules/widget-uievents.html">widget-uievents</a></li>
1264
 
            
1265
 
                <li><a href="..&#x2F;modules/yql.html">yql</a></li>
1266
 
            
1267
 
                <li><a href="..&#x2F;modules/yui.html">yui</a></li>
1268
 
            
1269
 
                <li><a href="..&#x2F;modules/yui-base.html">yui-base</a></li>
1270
 
            
1271
 
                <li><a href="..&#x2F;modules/yui-later.html">yui-later</a></li>
1272
 
            
1273
 
                <li><a href="..&#x2F;modules/yui-log.html">yui-log</a></li>
1274
 
            
1275
 
                <li><a href="..&#x2F;modules/yui-throttle.html">yui-throttle</a></li>
1276
 
            
1277
 
                <li><a href="..&#x2F;modules/yui3.html">yui3</a></li>
1278
 
            
1279
 
            </ul>
1280
 
        </div>
1281
 
    </div>
1282
 
</div>
1283
 
 
1284
 
            </div>
1285
 
        </div>
1286
 
        <div class="yui3-u-3-4">
1287
 
                <div id="api-options">
1288
 
        Show:
1289
 
        <label for="api-show-inherited">
1290
 
            <input type="checkbox" id="api-show-inherited" checked>
1291
 
            Inherited
1292
 
        </label>
1293
 
 
1294
 
        <label for="api-show-protected">
1295
 
            <input type="checkbox" id="api-show-protected">
1296
 
            Protected
1297
 
        </label>
1298
 
 
1299
 
        <label for="api-show-private">
1300
 
            <input type="checkbox" id="api-show-private">
1301
 
            Private
1302
 
        </label>
1303
 
    </div>
1304
 
 
1305
 
 
1306
 
            <div class="apidocs">
1307
 
                <div id="docs-main">
1308
 
                    <div class="content">
1309
 
                        <h1 class="file-heading">File: datatable&#x2F;js&#x2F;sort.js</h1>
1310
 
 
1311
 
<div class="file">
1312
 
    <pre class="code prettyprint linenums">
1313
 
&#x2F;**
1314
 
Adds support for sorting the table data by API methods &#x60;table.sort(...)&#x60; or
1315
 
&#x60;table.toggleSort(...)&#x60; or by clicking on column headers in the rendered UI.
1316
 
 
1317
 
@module datatable
1318
 
@submodule datatable-sort
1319
 
@since 3.5.0
1320
 
**&#x2F;
1321
 
var YLang     = Y.Lang,
1322
 
    isBoolean = YLang.isBoolean,
1323
 
    isString  = YLang.isString,
1324
 
    isArray   = YLang.isArray,
1325
 
    isObject  = YLang.isObject,
1326
 
 
1327
 
    toArray = Y.Array,
1328
 
    sub     = YLang.sub,
1329
 
 
1330
 
    dirMap = {
1331
 
        asc : 1,
1332
 
        desc: -1,
1333
 
        &quot;1&quot; : 1,
1334
 
        &quot;-1&quot;: -1
1335
 
    };
1336
 
 
1337
 
 
1338
 
&#x2F;**
1339
 
_API docs for this extension are included in the DataTable class._
1340
 
 
1341
 
This DataTable class extension adds support for sorting the table data by API
1342
 
methods &#x60;table.sort(...)&#x60; or &#x60;table.toggleSort(...)&#x60; or by clicking on column
1343
 
headers in the rendered UI.
1344
 
 
1345
 
Sorting by the API is enabled automatically when this module is &#x60;use()&#x60;d.  To
1346
 
enable UI triggered sorting, set the DataTable&#x27;s &#x60;sortable&#x60; attribute to
1347
 
&#x60;true&#x60;.
1348
 
 
1349
 
&lt;pre&gt;&lt;code&gt;
1350
 
var table = new Y.DataTable({
1351
 
    columns: [ &#x27;id&#x27;, &#x27;username&#x27;, &#x27;name&#x27;, &#x27;birthdate&#x27; ],
1352
 
    data: [ ... ],
1353
 
    sortable: true
1354
 
});
1355
 
 
1356
 
table.render(&#x27;#table&#x27;);
1357
 
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
1358
 
 
1359
 
Setting &#x60;sortable&#x60; to &#x60;true&#x60; will enable UI sorting for all columns.  To enable
1360
 
UI sorting for certain columns only, set &#x60;sortable&#x60; to an array of column keys,
1361
 
or just add &#x60;sortable: true&#x60; to the respective column configuration objects.
1362
 
This uses the default setting of &#x60;sortable: auto&#x60; for the DataTable instance.
1363
 
 
1364
 
&lt;pre&gt;&lt;code&gt;
1365
 
var table = new Y.DataTable({
1366
 
    columns: [
1367
 
        &#x27;id&#x27;,
1368
 
        { key: &#x27;username&#x27;,  sortable: true },
1369
 
        { key: &#x27;name&#x27;,      sortable: true },
1370
 
        { key: &#x27;birthdate&#x27;, sortable: true }
1371
 
    ],
1372
 
    data: [ ... ]
1373
 
    &#x2F;&#x2F; sortable: &#x27;auto&#x27; is the default
1374
 
});
1375
 
 
1376
 
&#x2F;&#x2F; OR
1377
 
var table = new Y.DataTable({
1378
 
    columns: [ &#x27;id&#x27;, &#x27;username&#x27;, &#x27;name&#x27;, &#x27;birthdate&#x27; ],
1379
 
    data: [ ... ],
1380
 
    sortable: [ &#x27;username&#x27;, &#x27;name&#x27;, &#x27;birthdate&#x27; ]
1381
 
});
1382
 
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
1383
 
 
1384
 
To disable UI sorting for all columns, set &#x60;sortable&#x60; to &#x60;false&#x60;.  This still
1385
 
permits sorting via the API methods.
1386
 
 
1387
 
As new records are inserted into the table&#x27;s &#x60;data&#x60; ModelList, they will be inserted at the correct index to preserve the sort order.
1388
 
 
1389
 
The current sort order is stored in the &#x60;sortBy&#x60; attribute.  Assigning this value at instantiation will automatically sort your data.
1390
 
 
1391
 
Sorting is done by a simple value comparison using &amp;lt; and &amp;gt; on the field
1392
 
value.  If you need custom sorting, add a sort function in the column&#x27;s
1393
 
&#x60;sortFn&#x60; property.  Columns whose content is generated by formatters, but don&#x27;t
1394
 
relate to a single &#x60;key&#x60;, require a &#x60;sortFn&#x60; to be sortable.
1395
 
 
1396
 
&lt;pre&gt;&lt;code&gt;
1397
 
function nameSort(a, b, desc) {
1398
 
    var aa = a.get(&#x27;lastName&#x27;) + a.get(&#x27;firstName&#x27;),
1399
 
        bb = a.get(&#x27;lastName&#x27;) + b.get(&#x27;firstName&#x27;),
1400
 
        order = (aa &gt; bb) ? 1 : -(aa &lt; bb);
1401
 
        
1402
 
    return desc ? -order : order;
1403
 
}
1404
 
 
1405
 
var table = new Y.DataTable({
1406
 
    columns: [ &#x27;id&#x27;, &#x27;username&#x27;, { key: name, sortFn: nameSort }, &#x27;birthdate&#x27; ],
1407
 
    data: [ ... ],
1408
 
    sortable: [ &#x27;username&#x27;, &#x27;name&#x27;, &#x27;birthdate&#x27; ]
1409
 
});
1410
 
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
1411
 
 
1412
 
See the user guide for more details.
1413
 
 
1414
 
@class DataTable.Sortable
1415
 
@for DataTable
1416
 
@since 3.5.0
1417
 
**&#x2F;
1418
 
function Sortable() {}
1419
 
 
1420
 
Sortable.ATTRS = {
1421
 
    &#x2F;&#x2F; Which columns in the UI should suggest and respond to sorting interaction
1422
 
    &#x2F;&#x2F; pass an empty array if no UI columns should show sortable, but you want the
1423
 
    &#x2F;&#x2F; table.sort(...) API
1424
 
    &#x2F;**
1425
 
    Controls which column headers can trigger sorting by user clicks.
1426
 
 
1427
 
    Acceptable values are:
1428
 
 
1429
 
     * &quot;auto&quot; - (default) looks for &#x60;sortable: true&#x60; in the column configurations
1430
 
     * &#x60;true&#x60; - all columns are enabled
1431
 
     * &#x60;false - no UI sortable is enabled
1432
 
     * {String[]} - array of key names to give sortable headers
1433
 
 
1434
 
    @attribute sortable
1435
 
    @type {String|String[]|Boolean}
1436
 
    @default &quot;auto&quot;
1437
 
    @since 3.5.0
1438
 
    **&#x2F;
1439
 
    sortable: {
1440
 
        value: &#x27;auto&#x27;,
1441
 
        validator: &#x27;_validateSortable&#x27;
1442
 
    },
1443
 
 
1444
 
    &#x2F;**
1445
 
    The current sort configuration to maintain in the data.
1446
 
 
1447
 
    Accepts column &#x60;key&#x60; strings or objects with a single property, the column
1448
 
    &#x60;key&#x60;, with a value of 1, -1, &quot;asc&quot;, or &quot;desc&quot;.  E.g. &#x60;{ username: &#x27;asc&#x27;
1449
 
    }&#x60;.  String values are assumed to be ascending.
1450
 
 
1451
 
    Example values would be:
1452
 
 
1453
 
     * &#x60;&quot;username&quot;&#x60; - sort by the data&#x27;s &#x60;username&#x60; field or the &#x60;key&#x60;
1454
 
       associated to a column with that &#x60;name&#x60;.
1455
 
     * &#x60;{ username: &quot;desc&quot; }&#x60; - sort by &#x60;username&#x60; in descending order.
1456
 
       Alternately, use values &quot;asc&quot;, 1 (same as &quot;asc&quot;), or -1 (same as &quot;desc&quot;).
1457
 
     * &#x60;[&quot;lastName&quot;, &quot;firstName&quot;]&#x60; - ascending sort by &#x60;lastName&#x60;, but for
1458
 
       records with the same &#x60;lastName&#x60;, ascending subsort by &#x60;firstName&#x60;.
1459
 
       Array can have as many items as you want.
1460
 
     * &#x60;[{ lastName: -1 }, &quot;firstName&quot;]&#x60; - descending sort by &#x60;lastName&#x60;,
1461
 
       ascending subsort by &#x60;firstName&#x60;. Mixed types are ok.
1462
 
 
1463
 
    @attribute sortBy
1464
 
    @type {String|String[]|Object|Object[]}
1465
 
    @since 3.5.0
1466
 
    **&#x2F;
1467
 
    sortBy: {
1468
 
        validator: &#x27;_validateSortBy&#x27;,
1469
 
        getter: &#x27;_getSortBy&#x27;
1470
 
    },
1471
 
 
1472
 
    &#x2F;**
1473
 
    Strings containing language for sorting tooltips.
1474
 
 
1475
 
    @attribute strings
1476
 
    @type {Object}
1477
 
    @default (strings for current lang configured in the YUI instance config)
1478
 
    @since 3.5.0
1479
 
    **&#x2F;
1480
 
    strings: {}
1481
 
};
1482
 
 
1483
 
Y.mix(Sortable.prototype, {
1484
 
 
1485
 
    &#x2F;**
1486
 
    Sort the data in the &#x60;data&#x60; ModelList and refresh the table with the new
1487
 
    order.
1488
 
 
1489
 
    Acceptable values for &#x60;fields&#x60; are &#x60;key&#x60; strings or objects with a single
1490
 
    property, the column &#x60;key&#x60;, with a value of 1, -1, &quot;asc&quot;, or &quot;desc&quot;.  E.g.
1491
 
    &#x60;{ username: &#x27;asc&#x27; }&#x60;.  String values are assumed to be ascending.
1492
 
 
1493
 
    Example values would be:
1494
 
 
1495
 
     * &#x60;&quot;username&quot;&#x60; - sort by the data&#x27;s &#x60;username&#x60; field or the &#x60;key&#x60;
1496
 
       associated to a column with that &#x60;name&#x60;.
1497
 
     * &#x60;{ username: &quot;desc&quot; }&#x60; - sort by &#x60;username&#x60; in descending order.
1498
 
       Alternately, use values &quot;asc&quot;, 1 (same as &quot;asc&quot;), or -1 (same as &quot;desc&quot;).
1499
 
     * &#x60;[&quot;lastName&quot;, &quot;firstName&quot;]&#x60; - ascending sort by &#x60;lastName&#x60;, but for
1500
 
       records with the same &#x60;lastName&#x60;, ascending subsort by &#x60;firstName&#x60;.
1501
 
       Array can have as many items as you want.
1502
 
     * &#x60;[{ lastName: -1 }, &quot;firstName&quot;]&#x60; - descending sort by &#x60;lastName&#x60;,
1503
 
       ascending subsort by &#x60;firstName&#x60;. Mixed types are ok.
1504
 
 
1505
 
    @method sort
1506
 
    @param {String|String[]|Object|Object[]} fields The field(s) to sort by
1507
 
    @param {Object} [payload] Extra &#x60;sort&#x60; event payload you want to send along
1508
 
    @return {DataTable}
1509
 
    @chainable
1510
 
    @since 3.5.0
1511
 
    **&#x2F;
1512
 
    sort: function (fields, payload) {
1513
 
        &#x2F;**
1514
 
        Notifies of an impending sort, either from clicking on a column
1515
 
        header, or from a call to the &#x60;sort&#x60; or &#x60;toggleSort&#x60; method.
1516
 
 
1517
 
        The requested sort is available in the &#x60;sortBy&#x60; property of the event.
1518
 
 
1519
 
        The default behavior of this event sets the table&#x27;s &#x60;sortBy&#x60; attribute.
1520
 
 
1521
 
        @event sort
1522
 
        @param {String|String[]|Object|Object[]} sortBy The requested sort
1523
 
        @preventable _defSortFn
1524
 
        **&#x2F;
1525
 
        return this.fire(&#x27;sort&#x27;, Y.merge((payload || {}), {
1526
 
            sortBy: fields || this.get(&#x27;sortBy&#x27;)
1527
 
        }));
1528
 
    },
1529
 
 
1530
 
    &#x2F;**
1531
 
    Template for the node that will wrap the header content for sortable
1532
 
    columns.
1533
 
 
1534
 
    @property SORTABLE_HEADER_TEMPLATE
1535
 
    @type {HTML}
1536
 
    @value &#x27;&lt;div class=&quot;{className}&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;{indicatorClass}&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;div&gt;&#x27;
1537
 
    @since 3.5.0
1538
 
    **&#x2F;
1539
 
    SORTABLE_HEADER_TEMPLATE: &#x27;&lt;div class=&quot;{className}&quot; tabindex=&quot;0&quot;&gt;&lt;span class=&quot;{indicatorClass}&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;div&gt;&#x27;,
1540
 
 
1541
 
    &#x2F;**
1542
 
    Reverse the current sort direction of one or more fields currently being
1543
 
    sorted by.
1544
 
 
1545
 
    Pass the &#x60;key&#x60; of the column or columns you want the sort order reversed
1546
 
    for.
1547
 
 
1548
 
    @method toggleSort
1549
 
    @param {String|String[]} fields The field(s) to reverse sort order for
1550
 
    @param {Object} [payload] Extra &#x60;sort&#x60; event payload you want to send along
1551
 
    @return {DataTable}
1552
 
    @chainable
1553
 
    @since 3.5.0
1554
 
    **&#x2F;
1555
 
    toggleSort: function (columns, payload) {
1556
 
        var current = this._sortBy,
1557
 
            sortBy = [],
1558
 
            i, len, j, col, index;
1559
 
 
1560
 
        &#x2F;&#x2F; To avoid updating column configs or sortBy directly
1561
 
        for (i = 0, len = current.length; i &lt; len; ++i) {
1562
 
            col = {};
1563
 
            col[current[i]._id] = current[i].sortDir;
1564
 
            sortBy.push(col);
1565
 
        }
1566
 
 
1567
 
        if (columns) {
1568
 
            columns = toArray(columns);
1569
 
 
1570
 
            for (i = 0, len = columns.length; i &lt; len; ++i) {
1571
 
                col = columns[i];
1572
 
                index = -1;
1573
 
 
1574
 
                for (j = sortBy.length - 1; i &gt;= 0; --i) {
1575
 
                    if (sortBy[j][col]) {
1576
 
                        sortBy[j][col] *= -1;
1577
 
                        break;
1578
 
                    }
1579
 
                }
1580
 
            }
1581
 
        } else {
1582
 
            for (i = 0, len = sortBy.length; i &lt; len; ++i) {
1583
 
                for (col in sortBy[i]) {
1584
 
                    if (sortBy[i].hasOwnProperty(col)) {
1585
 
                        sortBy[i][col] *= -1;
1586
 
                        break;
1587
 
                    }
1588
 
                }
1589
 
            }
1590
 
        }
1591
 
 
1592
 
        return this.fire(&#x27;sort&#x27;, Y.merge((payload || {}), {
1593
 
            sortBy: sortBy
1594
 
        }));
1595
 
    },
1596
 
 
1597
 
    &#x2F;&#x2F;--------------------------------------------------------------------------
1598
 
    &#x2F;&#x2F; Protected properties and methods
1599
 
    &#x2F;&#x2F;--------------------------------------------------------------------------
1600
 
    &#x2F;**
1601
 
    Sorts the &#x60;data&#x60; ModelList based on the new &#x60;sortBy&#x60; configuration.
1602
 
 
1603
 
    @method _afterSortByChange
1604
 
    @param {EventFacade} e The &#x60;sortByChange&#x60; event
1605
 
    @protected
1606
 
    @since 3.5.0
1607
 
    **&#x2F;
1608
 
    _afterSortByChange: function (e) {
1609
 
        &#x2F;&#x2F; Can&#x27;t use a setter because it&#x27;s a chicken and egg problem. The
1610
 
        &#x2F;&#x2F; columns need to be set up to translate, but columns are initialized
1611
 
        &#x2F;&#x2F; from Core&#x27;s initializer.  So construction-time assignment would
1612
 
        &#x2F;&#x2F; fail.
1613
 
        this._setSortBy();
1614
 
 
1615
 
        &#x2F;&#x2F; Don&#x27;t sort unless sortBy has been set
1616
 
        if (this._sortBy.length) {
1617
 
            if (!this.data.comparator) {
1618
 
                 this.data.comparator = this._sortComparator;
1619
 
            }
1620
 
 
1621
 
            this.data.sort();
1622
 
        }
1623
 
    },
1624
 
 
1625
 
    &#x2F;**
1626
 
    Applies the sorting logic to the new ModelList if the &#x60;newVal&#x60; is a new
1627
 
    ModelList.
1628
 
 
1629
 
    @method _afterSortDataChange
1630
 
    @param {EventFacade} e the &#x60;dataChange&#x60; event
1631
 
    @protected
1632
 
    @since 3.5.0
1633
 
    **&#x2F;
1634
 
    _afterSortDataChange: function (e) {
1635
 
        &#x2F;&#x2F; object values always trigger a change event, but we only want to
1636
 
        &#x2F;&#x2F; call _initSortFn if the value passed to the &#x60;data&#x60; attribute was a
1637
 
        &#x2F;&#x2F; new ModelList, not a set of new data as an array, or even the same
1638
 
        &#x2F;&#x2F; ModelList.
1639
 
        if (e.prevVal !== e.newVal || e.newVal.hasOwnProperty(&#x27;_compare&#x27;)) {
1640
 
            this._initSortFn();
1641
 
        }
1642
 
    },
1643
 
 
1644
 
    &#x2F;**
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 &#x60;data&#x60; ModelList.
1647
 
 
1648
 
    @method _afterSortRecordChange
1649
 
    @param {EventFacade} e The Model&#x27;s &#x60;change&#x60; event
1650
 
    @protected
1651
 
    @since 3.5.0
1652
 
    **&#x2F;
1653
 
    _afterSortRecordChange: function (e) {
1654
 
        var i, len;
1655
 
 
1656
 
        for (i = 0, len = this._sortBy.length; i &lt; len; ++i) {
1657
 
            if (e.changed[this._sortBy[i].key]) {
1658
 
                this.data.sort();
1659
 
                break;
1660
 
            }
1661
 
        }
1662
 
    },
1663
 
 
1664
 
    &#x2F;**
1665
 
    Subscribes to state changes that warrant updating the UI, and adds the
1666
 
    click handler for triggering the sort operation from the UI.
1667
 
 
1668
 
    @method _bindSortUI
1669
 
    @protected
1670
 
    @since 3.5.0
1671
 
    **&#x2F;
1672
 
    _bindSortUI: function () {
1673
 
        this.after([&#x27;sortableChange&#x27;, &#x27;sortByChange&#x27;, &#x27;columnsChange&#x27;],
1674
 
            Y.bind(&#x27;_uiSetSortable&#x27;, this));
1675
 
 
1676
 
        if (this._theadNode) {
1677
 
            this._sortHandle = this.delegate([&#x27;click&#x27;,&#x27;keydown&#x27;],
1678
 
                Y.rbind(&#x27;_onUITriggerSort&#x27;, this),
1679
 
                &#x27;.&#x27; + this.getClassName(&#x27;sortable&#x27;, &#x27;column&#x27;));
1680
 
        }
1681
 
    },
1682
 
 
1683
 
    &#x2F;**
1684
 
    Sets the &#x60;sortBy&#x60; attribute from the &#x60;sort&#x60; event&#x27;s &#x60;e.sortBy&#x60; value.
1685
 
 
1686
 
    @method _defSortFn
1687
 
    @param {EventFacade} e The &#x60;sort&#x60; event
1688
 
    @protected
1689
 
    @since 3.5.0
1690
 
    **&#x2F;
1691
 
    _defSortFn: function (e) {
1692
 
        this.set.apply(this, [&#x27;sortBy&#x27;, e.sortBy].concat(e.details));
1693
 
    },
1694
 
 
1695
 
    &#x2F;**
1696
 
    Removes the click subscription from the header for sorting.
1697
 
 
1698
 
    @method destructor
1699
 
    @protected
1700
 
    @since 3.5.0
1701
 
    **&#x2F;
1702
 
    destructor: function () {
1703
 
        if (this._sortHandle) {
1704
 
            this._sortHandle.detach();
1705
 
        }
1706
 
    },
1707
 
 
1708
 
    &#x2F;**
1709
 
    Getter for the &#x60;sortBy&#x60; attribute.
1710
 
    
1711
 
    Supports the special subattribute &quot;sortBy.state&quot; to get a normalized JSON
1712
 
    version of the current sort state.  Otherwise, returns the last assigned
1713
 
    value.
1714
 
 
1715
 
    For example:
1716
 
 
1717
 
    &lt;pre&gt;&lt;code&gt;var table = new Y.DataTable({
1718
 
        columns: [ ... ],
1719
 
        data: [ ... ],
1720
 
        sortBy: &#x27;username&#x27;
1721
 
    });
1722
 
 
1723
 
    table.get(&#x27;sortBy&#x27;); &#x2F;&#x2F; &#x27;username&#x27;
1724
 
    table.get(&#x27;sortBy.state&#x27;); &#x2F;&#x2F; { key: &#x27;username&#x27;, dir: 1 }
1725
 
 
1726
 
    table.sort([&#x27;lastName&#x27;, { firstName: &quot;desc&quot; }]);
1727
 
    table.get(&#x27;sortBy&#x27;); &#x2F;&#x2F; [&#x27;lastName&#x27;, { firstName: &quot;desc&quot; }]
1728
 
    table.get(&#x27;sortBy.state&#x27;); &#x2F;&#x2F; [{ key: &quot;lastName&quot;, dir: 1 }, { key: &quot;firstName&quot;, dir: -1 }]
1729
 
    &lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
1730
 
 
1731
 
    @method _getSortBy
1732
 
    @param {String|String[]|Object|Object[]} val The current sortBy value
1733
 
    @param {String} detail String passed to &#x60;get(HERE)&#x60;. to parse subattributes
1734
 
    @protected
1735
 
    @since 3.5.0
1736
 
    **&#x2F;
1737
 
    _getSortBy: function (val, detail) {
1738
 
        var state, i, len, col;
1739
 
 
1740
 
        &#x2F;&#x2F; &quot;sortBy.&quot; is 7 characters. Used to catch 
1741
 
        detail = detail.slice(7);
1742
 
 
1743
 
        &#x2F;&#x2F; TODO: table.get(&#x27;sortBy.asObject&#x27;)? table.get(&#x27;sortBy.json&#x27;)?
1744
 
        if (detail === &#x27;state&#x27;) {
1745
 
            state = [];
1746
 
 
1747
 
            for (i = 0, len = this._sortBy.length; i &lt; len; ++i) {
1748
 
                col = this._sortBy[i];
1749
 
                state.push({
1750
 
                    column: col._id,
1751
 
                    dir: col.sortDir
1752
 
                });
1753
 
            }
1754
 
 
1755
 
            &#x2F;&#x2F; TODO: Always return an array?
1756
 
            return { state: (state.length === 1) ? state[0] : state };
1757
 
        } else {
1758
 
            return val;
1759
 
        }
1760
 
    },
1761
 
 
1762
 
    &#x2F;**
1763
 
    Sets up the initial sort state and instance properties.  Publishes events
1764
 
    and subscribes to attribute change events to maintain internal state.
1765
 
 
1766
 
    @method initializer
1767
 
    @protected
1768
 
    @since 3.5.0
1769
 
    **&#x2F;
1770
 
    initializer: function () {
1771
 
        var boundParseSortable = Y.bind(&#x27;_parseSortable&#x27;, this);
1772
 
 
1773
 
        this._parseSortable();
1774
 
 
1775
 
        this._setSortBy();
1776
 
 
1777
 
        this._initSortFn();
1778
 
 
1779
 
        this._initSortStrings();
1780
 
 
1781
 
        this.after({
1782
 
            renderHeader  : Y.bind(&#x27;_renderSortable&#x27;, this),
1783
 
            dataChange    : Y.bind(&#x27;_afterSortDataChange&#x27;, this),
1784
 
            sortByChange  : Y.bind(&#x27;_afterSortByChange&#x27;, this),
1785
 
            sortableChange: boundParseSortable,
1786
 
            columnsChange : boundParseSortable,
1787
 
            &quot;*:change&quot;    : Y.bind(&#x27;_afterSortRecordChange&#x27;, this)
1788
 
        });
1789
 
 
1790
 
        this.publish(&#x27;sort&#x27;, {
1791
 
            defaultFn: Y.bind(&#x27;_defSortFn&#x27;, this)
1792
 
        });
1793
 
    },
1794
 
 
1795
 
    &#x2F;**
1796
 
    Creates a &#x60;_compare&#x60; function for the &#x60;data&#x60; ModelList to allow custom
1797
 
    sorting by multiple fields.
1798
 
 
1799
 
    @method _initSortFn
1800
 
    @protected
1801
 
    @since 3.5.0
1802
 
    **&#x2F;
1803
 
    _initSortFn: function () {
1804
 
        var self = this;
1805
 
 
1806
 
        &#x2F;&#x2F; TODO: This should be a ModelList extension.
1807
 
        &#x2F;&#x2F; FIXME: Modifying a component of the host seems a little smelly
1808
 
        &#x2F;&#x2F; FIXME: Declaring inline override to leverage closure vs
1809
 
        &#x2F;&#x2F; compiling a new function for each column&#x2F;sortable change or
1810
 
        &#x2F;&#x2F; binding the _compare implementation to this, resulting in an
1811
 
        &#x2F;&#x2F; extra function hop during sorting. Lesser of three evils?
1812
 
        this.data._compare = function (a, b) {
1813
 
            var cmp = 0,
1814
 
                i, len, col, dir, aa, bb;
1815
 
 
1816
 
            for (i = 0, len = self._sortBy.length; !cmp &amp;&amp; i &lt; len; ++i) {
1817
 
                col = self._sortBy[i];
1818
 
                dir = col.sortDir;
1819
 
 
1820
 
                if (col.sortFn) {
1821
 
                    cmp = col.sortFn(a, b, (dir === -1));
1822
 
                } else {
1823
 
                    &#x2F;&#x2F; FIXME? Requires columns without sortFns to have key
1824
 
                    aa = a.get(col.key);
1825
 
                    bb = b.get(col.key);
1826
 
 
1827
 
                    cmp = (aa &gt; bb) ? dir : ((aa &lt; bb) ? -dir : 0);
1828
 
                }
1829
 
            }
1830
 
 
1831
 
            return cmp;
1832
 
        };
1833
 
 
1834
 
        if (this._sortBy.length) {
1835
 
            this.data.comparator = this._sortComparator;
1836
 
 
1837
 
            &#x2F;&#x2F; TODO: is this necessary? Should it be elsewhere?
1838
 
            this.data.sort();
1839
 
        } else {
1840
 
            &#x2F;&#x2F; Leave the _compare method in place to avoid having to set it
1841
 
            &#x2F;&#x2F; up again.  Mistake?
1842
 
            delete this.data.comparator;
1843
 
        }
1844
 
    },
1845
 
 
1846
 
    &#x2F;**
1847
 
    Add the sort related strings to the &#x60;strings&#x60; map.
1848
 
    
1849
 
    @method _initSortStrings
1850
 
    @protected
1851
 
    @since 3.5.0
1852
 
    **&#x2F;
1853
 
    _initSortStrings: function () {
1854
 
        &#x2F;&#x2F; Not a valueFn because other class extensions will want to add to it
1855
 
        this.set(&#x27;strings&#x27;, Y.mix((this.get(&#x27;strings&#x27;) || {}), 
1856
 
            Y.Intl.get(&#x27;datatable-sort&#x27;)));
1857
 
    },
1858
 
 
1859
 
    &#x2F;**
1860
 
    Fires the &#x60;sort&#x60; event in response to user clicks on sortable column
1861
 
    headers.
1862
 
 
1863
 
    @method _onUITriggerSort
1864
 
    @param {DOMEventFacade} e The &#x60;click&#x60; event
1865
 
    @protected
1866
 
    @since 3.5.0
1867
 
    **&#x2F;
1868
 
    _onUITriggerSort: function (e) {
1869
 
        var id = e.currentTarget.getAttribute(&#x27;data-yui3-col-id&#x27;),
1870
 
            sortBy = e.shiftKey ? this.get(&#x27;sortBy&#x27;) : [{}],
1871
 
            column = id &amp;&amp; this.getColumn(id),
1872
 
            i, len;
1873
 
 
1874
 
        if (e.type === &#x27;keydown&#x27; &amp;&amp; e.keyCode !== 32) {
1875
 
            return;
1876
 
        }
1877
 
 
1878
 
        &#x2F;&#x2F; In case a headerTemplate injected a link
1879
 
        &#x2F;&#x2F; TODO: Is this overreaching?
1880
 
        e.preventDefault();
1881
 
 
1882
 
        if (column) {
1883
 
            if (e.shiftKey) {
1884
 
                for (i = 0, len = sortBy.length; i &lt; len; ++i) {
1885
 
                    if (id === sortBy[i] || Math.abs(sortBy[i][id] === 1)) {
1886
 
                        if (!isObject(sortBy[i])) {
1887
 
                            sortBy[i] = {};
1888
 
                        }
1889
 
 
1890
 
                        sortBy[i][id] = -(column.sortDir|0) || 1;
1891
 
                        break;
1892
 
                    }
1893
 
                }
1894
 
 
1895
 
                if (i &gt;= len) {
1896
 
                    sortBy.push(column._id);
1897
 
                }
1898
 
            } else {
1899
 
                sortBy[0][id] = -(column.sortDir|0) || 1;
1900
 
            }
1901
 
 
1902
 
            this.fire(&#x27;sort&#x27;, {
1903
 
                originEvent: e,
1904
 
                sortBy: sortBy
1905
 
            });
1906
 
        }
1907
 
    },
1908
 
 
1909
 
    &#x2F;**
1910
 
    Normalizes the possible input values for the &#x60;sortable&#x60; attribute, storing
1911
 
    the results in the &#x60;_sortable&#x60; property.
1912
 
 
1913
 
    @method _parseSortable
1914
 
    @protected
1915
 
    @since 3.5.0
1916
 
    **&#x2F;
1917
 
    _parseSortable: function () {
1918
 
        var sortable = this.get(&#x27;sortable&#x27;),
1919
 
            columns  = [],
1920
 
            i, len, col;
1921
 
 
1922
 
        if (isArray(sortable)) {
1923
 
            for (i = 0, len = sortable.length; i &lt; len; ++i) {
1924
 
                col = sortable[i];
1925
 
 
1926
 
                &#x2F;&#x2F; isArray is called because arrays are objects, but will rely
1927
 
                &#x2F;&#x2F; on getColumn to nullify them for the subsequent if (col)
1928
 
                if (!isObject(col, true) || isArray(col)) {
1929
 
                    col = this.getColumn(col);
1930
 
                }
1931
 
 
1932
 
                if (col) {
1933
 
                    columns.push(col);
1934
 
                }
1935
 
            }
1936
 
        } else if (sortable) {
1937
 
            columns = this._displayColumns.slice();
1938
 
 
1939
 
            if (sortable === &#x27;auto&#x27;) {
1940
 
                for (i = columns.length - 1; i &gt;= 0; --i) {
1941
 
                    if (!columns[i].sortable) {
1942
 
                        columns.splice(i, 1);
1943
 
                    }
1944
 
                }
1945
 
            }
1946
 
        }
1947
 
 
1948
 
        this._sortable = columns;
1949
 
    },
1950
 
 
1951
 
    &#x2F;**
1952
 
    Initial application of the sortable UI.
1953
 
 
1954
 
    @method _renderSortable
1955
 
    @protected
1956
 
    @since 3.5.0
1957
 
    **&#x2F;
1958
 
    _renderSortable: function () {
1959
 
        this._uiSetSortable();
1960
 
 
1961
 
        this._bindSortUI();
1962
 
    },
1963
 
 
1964
 
    &#x2F;**
1965
 
    Parses the current &#x60;sortBy&#x60; attribute into a normalized structure for the
1966
 
    &#x60;data&#x60; ModelList&#x27;s &#x60;_compare&#x60; method.  Also updates the column
1967
 
    configurations&#x27; &#x60;sortDir&#x60; properties.
1968
 
 
1969
 
    @method _setSortBy
1970
 
    @protected
1971
 
    @since 3.5.0
1972
 
    **&#x2F;
1973
 
    _setSortBy: function () {
1974
 
        var columns     = this._displayColumns,
1975
 
            sortBy      = this.get(&#x27;sortBy&#x27;) || [],
1976
 
            sortedClass = &#x27; &#x27; + this.getClassName(&#x27;sorted&#x27;),
1977
 
            i, len, name, dir, field, column;
1978
 
 
1979
 
        this._sortBy = [];
1980
 
 
1981
 
        &#x2F;&#x2F; Purge current sort state from column configs
1982
 
        for (i = 0, len = columns.length; i &lt; len; ++i) {
1983
 
            column = columns[i];
1984
 
 
1985
 
            delete column.sortDir;
1986
 
 
1987
 
            if (column.className) {
1988
 
                &#x2F;&#x2F; TODO: be more thorough
1989
 
                column.className = column.className.replace(sortedClass, &#x27;&#x27;);
1990
 
            }
1991
 
        }
1992
 
 
1993
 
        sortBy = toArray(sortBy);
1994
 
 
1995
 
        for (i = 0, len = sortBy.length; i &lt; len; ++i) {
1996
 
            name = sortBy[i];
1997
 
            dir  = 1;
1998
 
 
1999
 
            if (isObject(name)) {
2000
 
                field = name;
2001
 
                &#x2F;&#x2F; 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]];
2005
 
                        break;
2006
 
                    }
2007
 
                }
2008
 
            }
2009
 
 
2010
 
            if (name) {
2011
 
                &#x2F;&#x2F; Allow sorting of any model field and any column
2012
 
                &#x2F;&#x2F; FIXME: this isn&#x27;t limited to model attributes, but there&#x27;s no
2013
 
                &#x2F;&#x2F; convenient way to get a list of the attributes for a Model
2014
 
                &#x2F;&#x2F; subclass *including* the attributes of its superclasses.
2015
 
                column = this.getColumn(name) || { _id: name, key: name };
2016
 
 
2017
 
                if (column) {
2018
 
                    column.sortDir = dir;
2019
 
 
2020
 
                    if (!column.className) {
2021
 
                        column.className = &#x27;&#x27;;
2022
 
                    }
2023
 
 
2024
 
                    column.className += sortedClass;
2025
 
 
2026
 
                    this._sortBy.push(column);
2027
 
                }
2028
 
            }
2029
 
        }
2030
 
    },
2031
 
 
2032
 
    &#x2F;**
2033
 
    Array of column configuration objects of those columns that need UI setup
2034
 
    for user interaction.
2035
 
 
2036
 
    @property _sortable
2037
 
    @type {Object[]}
2038
 
    @protected
2039
 
    @since 3.5.0
2040
 
    **&#x2F;
2041
 
    &#x2F;&#x2F;_sortable: null,
2042
 
 
2043
 
    &#x2F;**
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.
2047
 
 
2048
 
    @property _sortBy
2049
 
    @type {Object[]}
2050
 
    @protected
2051
 
    @since 3.5.0
2052
 
    **&#x2F;
2053
 
    &#x2F;&#x2F;_sortBy: null,
2054
 
 
2055
 
    &#x2F;**
2056
 
    Replacement &#x60;comparator&#x60; for the &#x60;data&#x60; ModelList that defers sorting logic
2057
 
    to the &#x60;_compare&#x60; method.  The deferral is accomplished by returning &#x60;this&#x60;.
2058
 
 
2059
 
    @method _sortComparator
2060
 
    @param {Model} item The record being evaluated for sort position
2061
 
    @return {Model} The record
2062
 
    @protected
2063
 
    @since 3.5.0
2064
 
    **&#x2F;
2065
 
    _sortComparator: function (item) {
2066
 
        &#x2F;&#x2F; Defer sorting to ModelList&#x27;s _compare
2067
 
        return item;
2068
 
    },
2069
 
 
2070
 
    &#x2F;**
2071
 
    Applies the appropriate classes to the &#x60;boundingBox&#x60; and column headers to
2072
 
    indicate sort state and sortability.
2073
 
 
2074
 
    Also currently wraps the header content of sortable columns in a &#x60;&lt;div&gt;&#x60;
2075
 
    liner to give a CSS anchor for sort indicators.
2076
 
 
2077
 
    @method _uiSetSortable
2078
 
    @protected
2079
 
    @since 3.5.0
2080
 
    **&#x2F;
2081
 
    _uiSetSortable: function () {
2082
 
        var columns       = this._sortable || [],
2083
 
            sortableClass = this.getClassName(&#x27;sortable&#x27;, &#x27;column&#x27;),
2084
 
            ascClass      = this.getClassName(&#x27;sorted&#x27;),
2085
 
            descClass     = this.getClassName(&#x27;sorted&#x27;, &#x27;desc&#x27;),
2086
 
            linerClass    = this.getClassName(&#x27;sort&#x27;, &#x27;liner&#x27;),
2087
 
            indicatorClass= this.getClassName(&#x27;sort&#x27;, &#x27;indicator&#x27;),
2088
 
            sortableCols  = {},
2089
 
            i, len, col, node, liner, title, desc;
2090
 
 
2091
 
        this.get(&#x27;boundingBox&#x27;).toggleClass(
2092
 
            this.getClassName(&#x27;sortable&#x27;),
2093
 
            columns.length);
2094
 
 
2095
 
        for (i = 0, len = columns.length; i &lt; len; ++i) {
2096
 
            sortableCols[columns[i].id] = columns[i];
2097
 
        }
2098
 
 
2099
 
        &#x2F;&#x2F; TODO: this.head.render() + decorate cells?
2100
 
        this._theadNode.all(&#x27;.&#x27; + sortableClass).each(function (node) {
2101
 
            var col       = sortableCols[node.get(&#x27;id&#x27;)],
2102
 
                liner     = node.one(&#x27;.&#x27; + linerClass),
2103
 
                indicator;
2104
 
 
2105
 
            if (col) {
2106
 
                if (!col.sortDir) {
2107
 
                    node.removeClass(ascClass)
2108
 
                        .removeClass(descClass);
2109
 
                }
2110
 
            } else {
2111
 
                node.removeClass(sortableClass)
2112
 
                    .removeClass(ascClass)
2113
 
                    .removeClass(descClass);
2114
 
 
2115
 
                if (liner) {
2116
 
                    liner.replace(liner.get(&#x27;childNodes&#x27;).toFrag());
2117
 
                }
2118
 
 
2119
 
                indicator = node.one(&#x27;.&#x27; + indicatorClass);
2120
 
 
2121
 
                if (indicator) {
2122
 
                    indicator.remove().destroy(true);
2123
 
                }
2124
 
            }
2125
 
        });
2126
 
 
2127
 
        for (i = 0, len = columns.length; i &lt; len; ++i) {
2128
 
            col  = columns[i];
2129
 
            node = this._theadNode.one(&#x27;#&#x27; + col.id);
2130
 
            desc = col.sortDir === -1;
2131
 
 
2132
 
            if (node) {
2133
 
                liner = node.one(&#x27;.&#x27; + linerClass);
2134
 
 
2135
 
                node.addClass(sortableClass);
2136
 
 
2137
 
                if (col.sortDir) {
2138
 
                    node.addClass(ascClass);
2139
 
 
2140
 
                    node.toggleClass(descClass, desc);
2141
 
 
2142
 
                    node.setAttribute(&#x27;aria-sort&#x27;, desc ?
2143
 
                        &#x27;descending&#x27; : &#x27;ascending&#x27;);
2144
 
                }
2145
 
 
2146
 
                if (!liner) {
2147
 
                    liner = Y.Node.create(Y.Lang.sub(
2148
 
                        this.SORTABLE_HEADER_TEMPLATE, {
2149
 
                            className: linerClass,
2150
 
                            indicatorClass: indicatorClass
2151
 
                        }));
2152
 
 
2153
 
                    liner.prepend(node.get(&#x27;childNodes&#x27;).toFrag());
2154
 
 
2155
 
                    node.append(liner);
2156
 
                }
2157
 
 
2158
 
                title = sub(this.getString(
2159
 
                    (col.sortDir === 1) ? &#x27;reverseSortBy&#x27; : &#x27;sortBy&#x27;), {
2160
 
                        column: col.abbr || col.label ||
2161
 
                                col.key  || (&#x27;column &#x27; + i)
2162
 
                });
2163
 
 
2164
 
                node.setAttribute(&#x27;title&#x27;, title);
2165
 
                &#x2F;&#x2F; To combat VoiceOver from reading the sort title as the
2166
 
                &#x2F;&#x2F; column header
2167
 
                node.setAttribute(&#x27;aria-labelledby&#x27;, col.id);
2168
 
            }
2169
 
        }
2170
 
    },
2171
 
 
2172
 
    &#x2F;**
2173
 
    Allows values &#x60;true&#x60;, &#x60;false&#x60;, &quot;auto&quot;, or arrays of column names through.
2174
 
 
2175
 
    @method _validateSortable
2176
 
    @param {Any} val The input value to &#x60;set(&quot;sortable&quot;, VAL)&#x60;
2177
 
    @return {Boolean}
2178
 
    @protected
2179
 
    @since 3.5.0
2180
 
    **&#x2F;
2181
 
    _validateSortable: function (val) {
2182
 
        return val === &#x27;auto&#x27; || isBoolean(val) || isArray(val);
2183
 
    },
2184
 
 
2185
 
    &#x2F;**
2186
 
    Allows strings, arrays of strings, objects, or arrays of objects.
2187
 
 
2188
 
    @method _validateSortBy
2189
 
    @param {String|String[]|Object|Object[]} val The new &#x60;sortBy&#x60; value
2190
 
    @return {Boolean}
2191
 
    @protected
2192
 
    @since 3.5.0
2193
 
    **&#x2F;
2194
 
    _validateSortBy: function (val) {
2195
 
        return val === null ||
2196
 
               isString(val) ||
2197
 
               isObject(val, true) ||
2198
 
               (isArray(val) &amp;&amp; (isString(val[0]) || isObject(val, true)));
2199
 
    }
2200
 
 
2201
 
}, true);
2202
 
 
2203
 
Y.DataTable.Sortable = Sortable;
2204
 
 
2205
 
Y.Base.mix(Y.DataTable, [Sortable]);
2206
 
 
2207
 
    </pre>
2208
 
</div>
2209
 
 
2210
 
                    </div>
2211
 
                </div>
2212
 
            </div>
2213
 
        </div>
2214
 
    </div>
2215
 
</div>
2216
 
<script src="..&#x2F;assets/vendor/prettify/prettify-min.js"></script>
2217
 
<script>prettyPrint();</script>
2218
 
<script src="..&#x2F;assets/js/yui-prettify.js"></script>
2219
 
<script src="..&#x2F;assets/../api.js"></script>
2220
 
<script src="..&#x2F;assets/js/api-filter.js"></script>
2221
 
<script src="..&#x2F;assets/js/api-list.js"></script>
2222
 
<script src="..&#x2F;assets/js/api-search.js"></script>
2223
 
<script src="..&#x2F;assets/js/apidocs.js"></script>
2224
 
</body>
2225
 
</html>