5
<title>widget/js/Widget.js - YUI 3</title>
6
<link rel="stylesheet" href="http://yui.yahooapis.com/3.5.0/build/cssgrids/cssgrids-min.css">
7
<link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
8
<link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
9
<script src="http://yui.yahooapis.com/3.5.0/build/yui/yui-min.js"></script>
11
<body class="yui3-skin-sam">
14
<div id="hd" class="yui3-g header">
15
<div class="yui3-u-3-4">
17
<h1><img src="../assets/css/logo.png" title="YUI 3"></h1>
20
<div class="yui3-u-1-4 version">
21
<em>API Docs for: 3.5.1</em>
24
<div id="bd" class="yui3-g">
26
<div class="yui3-u-1-4">
27
<div id="docs-sidebar" class="sidebar apidocs">
29
<h2 class="off-left">APIs</h2>
30
<div id="api-tabview" class="tabview">
32
<li><a href="#api-classes">Classes</a></li>
33
<li><a href="#api-modules">Modules</a></li>
36
<div id="api-tabview-filter">
37
<input type="search" id="api-filter" placeholder="Type to filter APIs">
40
<div id="api-tabview-panel">
41
<ul id="api-classes" class="apis classes">
43
<li><a href="../classes/Anim.html">Anim</a></li>
45
<li><a href="../classes/App.html">App</a></li>
47
<li><a href="../classes/App.Base.html">App.Base</a></li>
49
<li><a href="../classes/App.Transitions.html">App.Transitions</a></li>
51
<li><a href="../classes/App.TransitionsNative.html">App.TransitionsNative</a></li>
53
<li><a href="../classes/AreaSeries.html">AreaSeries</a></li>
55
<li><a href="../classes/AreaSplineSeries.html">AreaSplineSeries</a></li>
57
<li><a href="../classes/Array.html">Array</a></li>
59
<li><a href="../classes/ArrayList.html">ArrayList</a></li>
61
<li><a href="../classes/ArraySort.html">ArraySort</a></li>
63
<li><a href="../classes/AsyncQueue.html">AsyncQueue</a></li>
65
<li><a href="../classes/Attribute.html">Attribute</a></li>
67
<li><a href="../classes/AttributeCore.html">AttributeCore</a></li>
69
<li><a href="../classes/AttributeEvents.html">AttributeEvents</a></li>
71
<li><a href="../classes/AttributeExtras.html">AttributeExtras</a></li>
73
<li><a href="../classes/AttributeLite.html">AttributeLite</a></li>
75
<li><a href="../classes/AutoComplete.html">AutoComplete</a></li>
77
<li><a href="../classes/AutoCompleteBase.html">AutoCompleteBase</a></li>
79
<li><a href="../classes/AutoCompleteFilters.html">AutoCompleteFilters</a></li>
81
<li><a href="../classes/AutoCompleteHighlighters.html">AutoCompleteHighlighters</a></li>
83
<li><a href="../classes/AutoCompleteList.html">AutoCompleteList</a></li>
85
<li><a href="../classes/Axis.html">Axis</a></li>
87
<li><a href="../classes/AxisType.html">AxisType</a></li>
89
<li><a href="../classes/BarSeries.html">BarSeries</a></li>
91
<li><a href="../classes/Base.html">Base</a></li>
93
<li><a href="../classes/BaseCore.html">BaseCore</a></li>
95
<li><a href="../classes/BottomAxisLayout.html">BottomAxisLayout</a></li>
97
<li><a href="../classes/Button.html">Button</a></li>
99
<li><a href="../classes/ButtonCore.html">ButtonCore</a></li>
101
<li><a href="../classes/ButtonGroup.html">ButtonGroup</a></li>
103
<li><a href="../classes/ButtonPlugin.html">ButtonPlugin</a></li>
105
<li><a href="../classes/Cache.html">Cache</a></li>
107
<li><a href="../classes/CacheOffline.html">CacheOffline</a></li>
109
<li><a href="../classes/Calendar.html">Calendar</a></li>
111
<li><a href="../classes/CalendarBase.html">CalendarBase</a></li>
113
<li><a href="../classes/CanvasCircle.html">CanvasCircle</a></li>
115
<li><a href="../classes/CanvasDrawing.html">CanvasDrawing</a></li>
117
<li><a href="../classes/CanvasEllipse.html">CanvasEllipse</a></li>
119
<li><a href="../classes/CanvasGraphic.html">CanvasGraphic</a></li>
121
<li><a href="../classes/CanvasPath.html">CanvasPath</a></li>
123
<li><a href="../classes/CanvasPieSlice.html">CanvasPieSlice</a></li>
125
<li><a href="../classes/CanvasRect.html">CanvasRect</a></li>
127
<li><a href="../classes/CanvasShape.html">CanvasShape</a></li>
129
<li><a href="../classes/CartesianChart.html">CartesianChart</a></li>
131
<li><a href="../classes/CartesianSeries.html">CartesianSeries</a></li>
133
<li><a href="../classes/CategoryAxis.html">CategoryAxis</a></li>
135
<li><a href="../classes/Chart.html">Chart</a></li>
137
<li><a href="../classes/ChartBase.html">ChartBase</a></li>
139
<li><a href="../classes/ChartLegend.html">ChartLegend</a></li>
141
<li><a href="../classes/Circle.html">Circle</a></li>
143
<li><a href="../classes/ClassNameManager.html">ClassNameManager</a></li>
145
<li><a href="../classes/ClickableRail.html">ClickableRail</a></li>
147
<li><a href="../classes/ColumnSeries.html">ColumnSeries</a></li>
149
<li><a href="../classes/ComboSeries.html">ComboSeries</a></li>
151
<li><a href="../classes/ComboSplineSeries.html">ComboSplineSeries</a></li>
153
<li><a href="../classes/config.html">config</a></li>
155
<li><a href="../classes/Console.html">Console</a></li>
157
<li><a href="../classes/Controller.html">Controller</a></li>
159
<li><a href="../classes/Cookie.html">Cookie</a></li>
161
<li><a href="../classes/CurveUtil.html">CurveUtil</a></li>
163
<li><a href="../classes/CustomEvent.html">CustomEvent</a></li>
165
<li><a href="../classes/DataSchema.Array.html">DataSchema.Array</a></li>
167
<li><a href="../classes/DataSchema.Base.html">DataSchema.Base</a></li>
169
<li><a href="../classes/DataSchema.JSON.html">DataSchema.JSON</a></li>
171
<li><a href="../classes/DataSchema.Text.html">DataSchema.Text</a></li>
173
<li><a href="../classes/DataSchema.XML.html">DataSchema.XML</a></li>
175
<li><a href="../classes/DataSource.Function.html">DataSource.Function</a></li>
177
<li><a href="../classes/DataSource.Get.html">DataSource.Get</a></li>
179
<li><a href="../classes/DataSource.IO.html">DataSource.IO</a></li>
181
<li><a href="../classes/DataSource.Local.html">DataSource.Local</a></li>
183
<li><a href="../classes/DataSourceArraySchema.html">DataSourceArraySchema</a></li>
185
<li><a href="../classes/DataSourceCache.html">DataSourceCache</a></li>
187
<li><a href="../classes/DataSourceCacheExtension.html">DataSourceCacheExtension</a></li>
189
<li><a href="../classes/DataSourceJSONSchema.html">DataSourceJSONSchema</a></li>
191
<li><a href="../classes/DataSourceTextSchema.html">DataSourceTextSchema</a></li>
193
<li><a href="../classes/DataSourceXMLSchema.html">DataSourceXMLSchema</a></li>
195
<li><a href="../classes/DataTable.html">DataTable</a></li>
197
<li><a href="../classes/DataTable.Base.html">DataTable.Base</a></li>
199
<li><a href="../classes/DataTable.BodyView.html">DataTable.BodyView</a></li>
201
<li><a href="../classes/DataTable.ColumnWidths.html">DataTable.ColumnWidths</a></li>
203
<li><a href="../classes/DataTable.Core.html">DataTable.Core</a></li>
205
<li><a href="../classes/DataTable.HeaderView.html">DataTable.HeaderView</a></li>
207
<li><a href="../classes/DataTable.Message.html">DataTable.Message</a></li>
209
<li><a href="../classes/DataTable.Mutable.html">DataTable.Mutable</a></li>
211
<li><a href="../classes/DataTable.Scrollable.html">DataTable.Scrollable</a></li>
213
<li><a href="../classes/DataTable.Sortable.html">DataTable.Sortable</a></li>
215
<li><a href="../classes/DataType.Date.html">DataType.Date</a></li>
217
<li><a href="../classes/DataType.Date.Locale.html">DataType.Date.Locale</a></li>
219
<li><a href="../classes/DataType.Number.html">DataType.Number</a></li>
221
<li><a href="../classes/DataType.XML.html">DataType.XML</a></li>
223
<li><a href="../classes/DD.DDM.html">DD.DDM</a></li>
225
<li><a href="../classes/DD.Delegate.html">DD.Delegate</a></li>
227
<li><a href="../classes/DD.Drag.html">DD.Drag</a></li>
229
<li><a href="../classes/DD.Drop.html">DD.Drop</a></li>
231
<li><a href="../classes/DD.Scroll.html">DD.Scroll</a></li>
233
<li><a href="../classes/Dial.html">Dial</a></li>
235
<li><a href="../classes/Do.html">Do</a></li>
237
<li><a href="../classes/Do.AlterArgs.html">Do.AlterArgs</a></li>
239
<li><a href="../classes/Do.AlterReturn.html">Do.AlterReturn</a></li>
241
<li><a href="../classes/Do.Error.html">Do.Error</a></li>
243
<li><a href="../classes/Do.Halt.html">Do.Halt</a></li>
245
<li><a href="../classes/Do.Method.html">Do.Method</a></li>
247
<li><a href="../classes/Do.Prevent.html">Do.Prevent</a></li>
249
<li><a href="../classes/DOM.html">DOM</a></li>
251
<li><a href="../classes/DOMEventFacade.html">DOMEventFacade</a></li>
253
<li><a href="../classes/Drawing.html">Drawing</a></li>
255
<li><a href="../classes/Easing.html">Easing</a></li>
257
<li><a href="../classes/EditorBase.html">EditorBase</a></li>
259
<li><a href="../classes/EditorSelection.html">EditorSelection</a></li>
261
<li><a href="../classes/Ellipse.html">Ellipse</a></li>
263
<li><a href="../classes/EllipseGroup.html">EllipseGroup</a></li>
265
<li><a href="../classes/Escape.html">Escape</a></li>
267
<li><a href="../classes/Event.html">Event</a></li>
269
<li><a href="../classes/EventFacade.html">EventFacade</a></li>
271
<li><a href="../classes/EventHandle.html">EventHandle</a></li>
273
<li><a href="../classes/EventTarget.html">EventTarget</a></li>
275
<li><a href="../classes/ExecCommand.html">ExecCommand</a></li>
277
<li><a href="../classes/Features.html">Features</a></li>
279
<li><a href="../classes/File.html">File</a></li>
281
<li><a href="../classes/FileFlash.html">FileFlash</a></li>
283
<li><a href="../classes/FileHTML5.html">FileHTML5</a></li>
285
<li><a href="../classes/Fills.html">Fills</a></li>
287
<li><a href="../classes/Frame.html">Frame</a></li>
289
<li><a href="../classes/Get.html">Get</a></li>
291
<li><a href="../classes/Get.Transaction.html">Get.Transaction</a></li>
293
<li><a href="../classes/GetNodeJS.html">GetNodeJS</a></li>
295
<li><a href="../classes/Graph.html">Graph</a></li>
297
<li><a href="../classes/Graphic.html">Graphic</a></li>
299
<li><a href="../classes/GraphicBase.html">GraphicBase</a></li>
301
<li><a href="../classes/Gridlines.html">Gridlines</a></li>
303
<li><a href="../classes/GroupCircle.html">GroupCircle</a></li>
305
<li><a href="../classes/GroupDiamond.html">GroupDiamond</a></li>
307
<li><a href="../classes/GroupRect.html">GroupRect</a></li>
309
<li><a href="../classes/Handlebars.html">Handlebars</a></li>
311
<li><a href="../classes/Highlight.html">Highlight</a></li>
313
<li><a href="../classes/Histogram.html">Histogram</a></li>
315
<li><a href="../classes/HistoryBase.html">HistoryBase</a></li>
317
<li><a href="../classes/HistoryHash.html">HistoryHash</a></li>
319
<li><a href="../classes/HistoryHTML5.html">HistoryHTML5</a></li>
321
<li><a href="../classes/HorizontalLegendLayout.html">HorizontalLegendLayout</a></li>
323
<li><a href="../classes/ImgLoadGroup.html">ImgLoadGroup</a></li>
325
<li><a href="../classes/ImgLoadImgObj.html">ImgLoadImgObj</a></li>
327
<li><a href="../classes/Intl.html">Intl</a></li>
329
<li><a href="../classes/IO.html">IO</a></li>
331
<li><a href="../classes/JSON.html">JSON</a></li>
333
<li><a href="../classes/JSONPRequest.html">JSONPRequest</a></li>
335
<li><a href="../classes/Lang.html">Lang</a></li>
337
<li><a href="../classes/LeftAxisLayout.html">LeftAxisLayout</a></li>
339
<li><a href="../classes/Lines.html">Lines</a></li>
341
<li><a href="../classes/LineSeries.html">LineSeries</a></li>
343
<li><a href="../classes/Loader.html">Loader</a></li>
345
<li><a href="../classes/MarkerSeries.html">MarkerSeries</a></li>
347
<li><a href="../classes/Matrix.html">Matrix</a></li>
349
<li><a href="../classes/Model.html">Model</a></li>
351
<li><a href="../classes/ModelList.html">ModelList</a></li>
353
<li><a href="../classes/Node.html">Node</a></li>
355
<li><a href="../classes/NodeList.html">NodeList</a></li>
357
<li><a href="../classes/NumericAxis.html">NumericAxis</a></li>
359
<li><a href="../classes/Object.html">Object</a></li>
361
<li><a href="../classes/Overlay.html">Overlay</a></li>
363
<li><a href="../classes/Panel.html">Panel</a></li>
365
<li><a href="../classes/Parallel.html">Parallel</a></li>
367
<li><a href="../classes/Path.html">Path</a></li>
369
<li><a href="../classes/PieChart.html">PieChart</a></li>
371
<li><a href="../classes/PieSeries.html">PieSeries</a></li>
373
<li><a href="../classes/Pjax.html">Pjax</a></li>
375
<li><a href="../classes/PjaxBase.html">PjaxBase</a></li>
377
<li><a href="../classes/Plots.html">Plots</a></li>
379
<li><a href="../classes/Plugin.Align.html">Plugin.Align</a></li>
381
<li><a href="../classes/Plugin.AutoComplete.html">Plugin.AutoComplete</a></li>
383
<li><a href="../classes/Plugin.Base.html">Plugin.Base</a></li>
385
<li><a href="../classes/Plugin.Cache.html">Plugin.Cache</a></li>
387
<li><a href="../classes/Plugin.CalendarNavigator.html">Plugin.CalendarNavigator</a></li>
389
<li><a href="../classes/Plugin.ConsoleFilters.html">Plugin.ConsoleFilters</a></li>
391
<li><a href="../classes/Plugin.CreateLinkBase.html">Plugin.CreateLinkBase</a></li>
393
<li><a href="../classes/Plugin.DataTableDataSource.html">Plugin.DataTableDataSource</a></li>
395
<li><a href="../classes/Plugin.DDConstrained.html">Plugin.DDConstrained</a></li>
397
<li><a href="../classes/Plugin.DDNodeScroll.html">Plugin.DDNodeScroll</a></li>
399
<li><a href="../classes/Plugin.DDProxy.html">Plugin.DDProxy</a></li>
401
<li><a href="../classes/Plugin.DDWindowScroll.html">Plugin.DDWindowScroll</a></li>
403
<li><a href="../classes/Plugin.Drag.html">Plugin.Drag</a></li>
405
<li><a href="../classes/Plugin.Drop.html">Plugin.Drop</a></li>
407
<li><a href="../classes/Plugin.EditorBidi.html">Plugin.EditorBidi</a></li>
409
<li><a href="../classes/Plugin.EditorBR.html">Plugin.EditorBR</a></li>
411
<li><a href="../classes/Plugin.EditorLists.html">Plugin.EditorLists</a></li>
413
<li><a href="../classes/Plugin.EditorPara.html">Plugin.EditorPara</a></li>
415
<li><a href="../classes/Plugin.EditorParaBase.html">Plugin.EditorParaBase</a></li>
417
<li><a href="../classes/Plugin.EditorParaIE.html">Plugin.EditorParaIE</a></li>
419
<li><a href="../classes/Plugin.EditorTab.html">Plugin.EditorTab</a></li>
421
<li><a href="../classes/Plugin.ExecCommand.html">Plugin.ExecCommand</a></li>
423
<li><a href="../classes/Plugin.Flick.html">Plugin.Flick</a></li>
425
<li><a href="../classes/Plugin.Host.html">Plugin.Host</a></li>
427
<li><a href="../classes/plugin.NodeFocusManager.html">plugin.NodeFocusManager</a></li>
429
<li><a href="../classes/Plugin.NodeFX.html">Plugin.NodeFX</a></li>
431
<li><a href="../classes/plugin.NodeMenuNav.html">plugin.NodeMenuNav</a></li>
433
<li><a href="../classes/Plugin.Pjax.html">Plugin.Pjax</a></li>
435
<li><a href="../classes/Plugin.Resize.html">Plugin.Resize</a></li>
437
<li><a href="../classes/Plugin.ResizeConstrained.html">Plugin.ResizeConstrained</a></li>
439
<li><a href="../classes/Plugin.ResizeProxy.html">Plugin.ResizeProxy</a></li>
441
<li><a href="../classes/Plugin.ScrollViewList.html">Plugin.ScrollViewList</a></li>
443
<li><a href="../classes/Plugin.ScrollViewPaginator.html">Plugin.ScrollViewPaginator</a></li>
445
<li><a href="../classes/Plugin.ScrollViewScrollbars.html">Plugin.ScrollViewScrollbars</a></li>
447
<li><a href="../classes/Plugin.Shim.html">Plugin.Shim</a></li>
449
<li><a href="../classes/Plugin.SortScroll.html">Plugin.SortScroll</a></li>
451
<li><a href="../classes/Plugin.WidgetAnim.html">Plugin.WidgetAnim</a></li>
453
<li><a href="../classes/Pollable.html">Pollable</a></li>
455
<li><a href="../classes/Profiler.html">Profiler</a></li>
457
<li><a href="../classes/QueryString.html">QueryString</a></li>
459
<li><a href="../classes/Queue.html">Queue</a></li>
461
<li><a href="../classes/Record.html">Record</a></li>
463
<li><a href="../classes/Recordset.html">Recordset</a></li>
465
<li><a href="../classes/RecordsetFilter.html">RecordsetFilter</a></li>
467
<li><a href="../classes/RecordsetIndexer.html">RecordsetIndexer</a></li>
469
<li><a href="../classes/RecordsetSort.html">RecordsetSort</a></li>
471
<li><a href="../classes/Rect.html">Rect</a></li>
473
<li><a href="../classes/Renderer.html">Renderer</a></li>
475
<li><a href="../classes/Resize.html">Resize</a></li>
477
<li><a href="../classes/RightAxisLayout.html">RightAxisLayout</a></li>
479
<li><a href="../classes/Router.html">Router</a></li>
481
<li><a href="../classes/ScrollView.html">ScrollView</a></li>
483
<li><a href="../classes/Selector.html">Selector</a></li>
485
<li><a href="../classes/Shape.html">Shape</a></li>
487
<li><a href="../classes/ShapeGroup.html">ShapeGroup</a></li>
489
<li><a href="../classes/Slider.html">Slider</a></li>
491
<li><a href="../classes/SliderBase.html">SliderBase</a></li>
493
<li><a href="../classes/SliderValueRange.html">SliderValueRange</a></li>
495
<li><a href="../classes/Sortable.html">Sortable</a></li>
497
<li><a href="../classes/SplineSeries.html">SplineSeries</a></li>
499
<li><a href="../classes/StackedAreaSeries.html">StackedAreaSeries</a></li>
501
<li><a href="../classes/StackedAreaSplineSeries.html">StackedAreaSplineSeries</a></li>
503
<li><a href="../classes/StackedAxis.html">StackedAxis</a></li>
505
<li><a href="../classes/StackedBarSeries.html">StackedBarSeries</a></li>
507
<li><a href="../classes/StackedColumnSeries.html">StackedColumnSeries</a></li>
509
<li><a href="../classes/StackedComboSeries.html">StackedComboSeries</a></li>
511
<li><a href="../classes/StackedComboSplineSeries.html">StackedComboSplineSeries</a></li>
513
<li><a href="../classes/StackedLineSeries.html">StackedLineSeries</a></li>
515
<li><a href="../classes/StackedMarkerSeries.html">StackedMarkerSeries</a></li>
517
<li><a href="../classes/StackedSplineSeries.html">StackedSplineSeries</a></li>
519
<li><a href="../classes/StackingUtil.html">StackingUtil</a></li>
521
<li><a href="../classes/State.html">State</a></li>
523
<li><a href="../classes/StyleSheet.html">StyleSheet</a></li>
525
<li><a href="../classes/Subscriber.html">Subscriber</a></li>
527
<li><a href="../classes/SVGCircle.html">SVGCircle</a></li>
529
<li><a href="../classes/SVGDrawing.html">SVGDrawing</a></li>
531
<li><a href="../classes/SVGEllipse.html">SVGEllipse</a></li>
533
<li><a href="../classes/SVGGraphic.html">SVGGraphic</a></li>
535
<li><a href="../classes/SVGPath.html">SVGPath</a></li>
537
<li><a href="../classes/SVGPieSlice.html">SVGPieSlice</a></li>
539
<li><a href="../classes/SVGRect.html">SVGRect</a></li>
541
<li><a href="../classes/SVGShape.html">SVGShape</a></li>
543
<li><a href="../classes/SWF.html">SWF</a></li>
545
<li><a href="../classes/SWFDetect.html">SWFDetect</a></li>
547
<li><a href="../classes/SyntheticEvent.html">SyntheticEvent</a></li>
549
<li><a href="../classes/SyntheticEvent.Notifier.html">SyntheticEvent.Notifier</a></li>
551
<li><a href="../classes/SynthRegistry.html">SynthRegistry</a></li>
553
<li><a href="../classes/Tab.html">Tab</a></li>
555
<li><a href="../classes/TabView.html">TabView</a></li>
557
<li><a href="../classes/Test.ArrayAssert.html">Test.ArrayAssert</a></li>
559
<li><a href="../classes/Test.Assert.html">Test.Assert</a></li>
561
<li><a href="../classes/Test.AssertionError.html">Test.AssertionError</a></li>
563
<li><a href="../classes/Test.ComparisonFailure.html">Test.ComparisonFailure</a></li>
565
<li><a href="../classes/Test.Console.html">Test.Console</a></li>
567
<li><a href="../classes/Test.CoverageFormat.html">Test.CoverageFormat</a></li>
569
<li><a href="../classes/Test.DateAssert.html">Test.DateAssert</a></li>
571
<li><a href="../classes/Test.EventTarget.html">Test.EventTarget</a></li>
573
<li><a href="../classes/Test.Mock.html">Test.Mock</a></li>
575
<li><a href="../classes/Test.Mock.Value.html">Test.Mock.Value</a></li>
577
<li><a href="../classes/Test.ObjectAssert.html">Test.ObjectAssert</a></li>
579
<li><a href="../classes/Test.Reporter.html">Test.Reporter</a></li>
581
<li><a href="../classes/Test.Results.html">Test.Results</a></li>
583
<li><a href="../classes/Test.Runner.html">Test.Runner</a></li>
585
<li><a href="../classes/Test.ShouldError.html">Test.ShouldError</a></li>
587
<li><a href="../classes/Test.ShouldFail.html">Test.ShouldFail</a></li>
589
<li><a href="../classes/Test.TestCase.html">Test.TestCase</a></li>
591
<li><a href="../classes/Test.TestFormat.html">Test.TestFormat</a></li>
593
<li><a href="../classes/Test.TestNode.html">Test.TestNode</a></li>
595
<li><a href="../classes/Test.TestRunner.html">Test.TestRunner</a></li>
597
<li><a href="../classes/Test.TestSuite.html">Test.TestSuite</a></li>
599
<li><a href="../classes/Test.UnexpectedError.html">Test.UnexpectedError</a></li>
601
<li><a href="../classes/Test.UnexpectedValue.html">Test.UnexpectedValue</a></li>
603
<li><a href="../classes/Test.Wait.html">Test.Wait</a></li>
605
<li><a href="../classes/Text.AccentFold.html">Text.AccentFold</a></li>
607
<li><a href="../classes/Text.WordBreak.html">Text.WordBreak</a></li>
609
<li><a href="../classes/TimeAxis.html">TimeAxis</a></li>
611
<li><a href="../classes/ToggleButton.html">ToggleButton</a></li>
613
<li><a href="../classes/TopAxisLayout.html">TopAxisLayout</a></li>
615
<li><a href="../classes/Transition.html">Transition</a></li>
617
<li><a href="../classes/UA.html">UA</a></li>
619
<li><a href="../classes/Uploader.html">Uploader</a></li>
621
<li><a href="../classes/Uploader.Queue.html">Uploader.Queue</a></li>
623
<li><a href="../classes/UploaderFlash.html">UploaderFlash</a></li>
625
<li><a href="../classes/UploaderHTML5.html">UploaderHTML5</a></li>
627
<li><a href="../classes/ValueChange.html">ValueChange</a></li>
629
<li><a href="../classes/VerticalLegendLayout.html">VerticalLegendLayout</a></li>
631
<li><a href="../classes/View.html">View</a></li>
633
<li><a href="../classes/View.NodeMap.html">View.NodeMap</a></li>
635
<li><a href="../classes/VMLCircle.html">VMLCircle</a></li>
637
<li><a href="../classes/VMLDrawing.html">VMLDrawing</a></li>
639
<li><a href="../classes/VMLEllipse.html">VMLEllipse</a></li>
641
<li><a href="../classes/VMLGraphic.html">VMLGraphic</a></li>
643
<li><a href="../classes/VMLPath.html">VMLPath</a></li>
645
<li><a href="../classes/VMLPieSlice.html">VMLPieSlice</a></li>
647
<li><a href="../classes/VMLRect.html">VMLRect</a></li>
649
<li><a href="../classes/VMLShape.html">VMLShape</a></li>
651
<li><a href="../classes/Widget.html">Widget</a></li>
653
<li><a href="../classes/WidgetAutohide.html">WidgetAutohide</a></li>
655
<li><a href="../classes/WidgetButtons.html">WidgetButtons</a></li>
657
<li><a href="../classes/WidgetChild.html">WidgetChild</a></li>
659
<li><a href="../classes/WidgetModality.html">WidgetModality</a></li>
661
<li><a href="../classes/WidgetParent.html">WidgetParent</a></li>
663
<li><a href="../classes/WidgetPosition.html">WidgetPosition</a></li>
665
<li><a href="../classes/WidgetPositionAlign.html">WidgetPositionAlign</a></li>
667
<li><a href="../classes/WidgetPositionConstrain.html">WidgetPositionConstrain</a></li>
669
<li><a href="../classes/WidgetStack.html">WidgetStack</a></li>
671
<li><a href="../classes/WidgetStdMod.html">WidgetStdMod</a></li>
673
<li><a href="../classes/YQL.html">YQL</a></li>
675
<li><a href="../classes/YQLRequest.html">YQLRequest</a></li>
677
<li><a href="../classes/YUI.html">YUI</a></li>
679
<li><a href="../classes/YUI~substitute.html">YUI~substitute</a></li>
683
<ul id="api-modules" class="apis modules">
685
<li><a href="../modules/align-plugin.html">align-plugin</a></li>
687
<li><a href="../modules/anim.html">anim</a></li>
689
<li><a href="../modules/anim-base.html">anim-base</a></li>
691
<li><a href="../modules/anim-color.html">anim-color</a></li>
693
<li><a href="../modules/anim-curve.html">anim-curve</a></li>
695
<li><a href="../modules/anim-easing.html">anim-easing</a></li>
697
<li><a href="../modules/anim-node-plugin.html">anim-node-plugin</a></li>
699
<li><a href="../modules/anim-scroll.html">anim-scroll</a></li>
701
<li><a href="../modules/anim-shape-transform.html">anim-shape-transform</a></li>
703
<li><a href="../modules/anim-xy.html">anim-xy</a></li>
705
<li><a href="../modules/app.html">app</a></li>
707
<li><a href="../modules/app-base.html">app-base</a></li>
709
<li><a href="../modules/app-transitions.html">app-transitions</a></li>
711
<li><a href="../modules/app-transitions-native.html">app-transitions-native</a></li>
713
<li><a href="../modules/array-extras.html">array-extras</a></li>
715
<li><a href="../modules/array-invoke.html">array-invoke</a></li>
717
<li><a href="../modules/arraylist.html">arraylist</a></li>
719
<li><a href="../modules/arraylist-add.html">arraylist-add</a></li>
721
<li><a href="../modules/arraylist-filter.html">arraylist-filter</a></li>
723
<li><a href="../modules/arraysort.html">arraysort</a></li>
725
<li><a href="../modules/async-queue.html">async-queue</a></li>
727
<li><a href="../modules/attribute.html">attribute</a></li>
729
<li><a href="../modules/attribute-base.html">attribute-base</a></li>
731
<li><a href="../modules/attribute-complex.html">attribute-complex</a></li>
733
<li><a href="../modules/attribute-core.html">attribute-core</a></li>
735
<li><a href="../modules/attribute-events.html">attribute-events</a></li>
737
<li><a href="../modules/attribute-extras.html">attribute-extras</a></li>
739
<li><a href="../modules/autocomplete.html">autocomplete</a></li>
741
<li><a href="../modules/autocomplete-base.html">autocomplete-base</a></li>
743
<li><a href="../modules/autocomplete-filters.html">autocomplete-filters</a></li>
745
<li><a href="../modules/autocomplete-filters-accentfold.html">autocomplete-filters-accentfold</a></li>
747
<li><a href="../modules/autocomplete-highlighters.html">autocomplete-highlighters</a></li>
749
<li><a href="../modules/autocomplete-highlighters-accentfold.html">autocomplete-highlighters-accentfold</a></li>
751
<li><a href="../modules/autocomplete-list.html">autocomplete-list</a></li>
753
<li><a href="../modules/autocomplete-list-keys.html">autocomplete-list-keys</a></li>
755
<li><a href="../modules/autocomplete-plugin.html">autocomplete-plugin</a></li>
757
<li><a href="../modules/autocomplete-sources.html">autocomplete-sources</a></li>
759
<li><a href="../modules/base.html">base</a></li>
761
<li><a href="../modules/base-base.html">base-base</a></li>
763
<li><a href="../modules/base-build.html">base-build</a></li>
765
<li><a href="../modules/base-core.html">base-core</a></li>
767
<li><a href="../modules/base-pluginhost.html">base-pluginhost</a></li>
769
<li><a href="../modules/button.html">button</a></li>
771
<li><a href="../modules/button-core.html">button-core</a></li>
773
<li><a href="../modules/button-group.html">button-group</a></li>
775
<li><a href="../modules/button-plugin.html">button-plugin</a></li>
777
<li><a href="../modules/cache.html">cache</a></li>
779
<li><a href="../modules/cache-base.html">cache-base</a></li>
781
<li><a href="../modules/cache-offline.html">cache-offline</a></li>
783
<li><a href="../modules/cache-plugin.html">cache-plugin</a></li>
785
<li><a href="../modules/calendar.html">calendar</a></li>
787
<li><a href="../modules/calendar-base.html">calendar-base</a></li>
789
<li><a href="../modules/calendarnavigator.html">calendarnavigator</a></li>
791
<li><a href="../modules/charts.html">charts</a></li>
793
<li><a href="../modules/charts-legend.html">charts-legend</a></li>
795
<li><a href="../modules/classnamemanager.html">classnamemanager</a></li>
797
<li><a href="../modules/clickable-rail.html">clickable-rail</a></li>
799
<li><a href="../modules/collection.html">collection</a></li>
801
<li><a href="../modules/console.html">console</a></li>
803
<li><a href="../modules/console-filters.html">console-filters</a></li>
805
<li><a href="../modules/cookie.html">cookie</a></li>
807
<li><a href="../modules/createlink-base.html">createlink-base</a></li>
809
<li><a href="../modules/dataschema.html">dataschema</a></li>
811
<li><a href="../modules/dataschema-array.html">dataschema-array</a></li>
813
<li><a href="../modules/dataschema-base.html">dataschema-base</a></li>
815
<li><a href="../modules/dataschema-json.html">dataschema-json</a></li>
817
<li><a href="../modules/dataschema-text.html">dataschema-text</a></li>
819
<li><a href="../modules/dataschema-xml.html">dataschema-xml</a></li>
821
<li><a href="../modules/datasource.html">datasource</a></li>
823
<li><a href="../modules/datasource-arrayschema.html">datasource-arrayschema</a></li>
825
<li><a href="../modules/datasource-cache.html">datasource-cache</a></li>
827
<li><a href="../modules/datasource-function.html">datasource-function</a></li>
829
<li><a href="../modules/datasource-get.html">datasource-get</a></li>
831
<li><a href="../modules/datasource-io.html">datasource-io</a></li>
833
<li><a href="../modules/datasource-jsonschema.html">datasource-jsonschema</a></li>
835
<li><a href="../modules/datasource-local.html">datasource-local</a></li>
837
<li><a href="../modules/datasource-polling.html">datasource-polling</a></li>
839
<li><a href="../modules/datasource-textschema.html">datasource-textschema</a></li>
841
<li><a href="../modules/datasource-xmlschema.html">datasource-xmlschema</a></li>
843
<li><a href="../modules/datatable.html">datatable</a></li>
845
<li><a href="../modules/datatable-base.html">datatable-base</a></li>
847
<li><a href="../modules/datatable-base-deprecated.html">datatable-base-deprecated</a></li>
849
<li><a href="../modules/datatable-body.html">datatable-body</a></li>
851
<li><a href="../modules/datatable-column-widths.html">datatable-column-widths</a></li>
853
<li><a href="../modules/datatable-core.html">datatable-core</a></li>
855
<li><a href="../modules/datatable-datasource.html">datatable-datasource</a></li>
857
<li><a href="../modules/datatable-datasource-deprecated.html">datatable-datasource-deprecated</a></li>
859
<li><a href="../modules/datatable-deprecated.html">datatable-deprecated</a></li>
861
<li><a href="../modules/datatable-head.html">datatable-head</a></li>
863
<li><a href="../modules/datatable-message.html">datatable-message</a></li>
865
<li><a href="../modules/datatable-mutable.html">datatable-mutable</a></li>
867
<li><a href="../modules/datatable-scroll.html">datatable-scroll</a></li>
869
<li><a href="../modules/datatable-scroll-deprecated.html">datatable-scroll-deprecated</a></li>
871
<li><a href="../modules/datatable-sort.html">datatable-sort</a></li>
873
<li><a href="../modules/datatable-sort-deprecated.html">datatable-sort-deprecated</a></li>
875
<li><a href="../modules/datatype.html">datatype</a></li>
877
<li><a href="../modules/datatype-date.html">datatype-date</a></li>
879
<li><a href="../modules/datatype-date-format.html">datatype-date-format</a></li>
881
<li><a href="../modules/datatype-date-math.html">datatype-date-math</a></li>
883
<li><a href="../modules/datatype-date-parse.html">datatype-date-parse</a></li>
885
<li><a href="../modules/datatype-number.html">datatype-number</a></li>
887
<li><a href="../modules/datatype-number-format.html">datatype-number-format</a></li>
889
<li><a href="../modules/datatype-number-parse.html">datatype-number-parse</a></li>
891
<li><a href="../modules/datatype-xml.html">datatype-xml</a></li>
893
<li><a href="../modules/datatype-xml-format.html">datatype-xml-format</a></li>
895
<li><a href="../modules/datatype-xml-parse.html">datatype-xml-parse</a></li>
897
<li><a href="../modules/dd.html">dd</a></li>
899
<li><a href="../modules/dd-constrain.html">dd-constrain</a></li>
901
<li><a href="../modules/dd-ddm.html">dd-ddm</a></li>
903
<li><a href="../modules/dd-ddm-base.html">dd-ddm-base</a></li>
905
<li><a href="../modules/dd-ddm-drop.html">dd-ddm-drop</a></li>
907
<li><a href="../modules/dd-delegate.html">dd-delegate</a></li>
909
<li><a href="../modules/dd-drag.html">dd-drag</a></li>
911
<li><a href="../modules/dd-drop.html">dd-drop</a></li>
913
<li><a href="../modules/dd-drop-plugin.html">dd-drop-plugin</a></li>
915
<li><a href="../modules/dd-plugin.html">dd-plugin</a></li>
917
<li><a href="../modules/dd-proxy.html">dd-proxy</a></li>
919
<li><a href="../modules/dd-scroll.html">dd-scroll</a></li>
921
<li><a href="../modules/dial.html">dial</a></li>
923
<li><a href="../modules/dom.html">dom</a></li>
925
<li><a href="../modules/dom-base.html">dom-base</a></li>
927
<li><a href="../modules/dom-screen.html">dom-screen</a></li>
929
<li><a href="../modules/dom-style.html">dom-style</a></li>
931
<li><a href="../modules/dump.html">dump</a></li>
933
<li><a href="../modules/editor.html">editor</a></li>
935
<li><a href="../modules/editor-base.html">editor-base</a></li>
937
<li><a href="../modules/editor-bidi.html">editor-bidi</a></li>
939
<li><a href="../modules/editor-br.html">editor-br</a></li>
941
<li><a href="../modules/editor-lists.html">editor-lists</a></li>
943
<li><a href="../modules/editor-para.html">editor-para</a></li>
945
<li><a href="../modules/editor-para-base.html">editor-para-base</a></li>
947
<li><a href="../modules/editor-para-ie.html">editor-para-ie</a></li>
949
<li><a href="../modules/editor-tab.html">editor-tab</a></li>
951
<li><a href="../modules/escape.html">escape</a></li>
953
<li><a href="../modules/event.html">event</a></li>
955
<li><a href="../modules/event-base.html">event-base</a></li>
957
<li><a href="../modules/event-contextmenu.html">event-contextmenu</a></li>
959
<li><a href="../modules/event-custom.html">event-custom</a></li>
961
<li><a href="../modules/event-custom-base.html">event-custom-base</a></li>
963
<li><a href="../modules/event-custom-complex.html">event-custom-complex</a></li>
965
<li><a href="../modules/event-delegate.html">event-delegate</a></li>
967
<li><a href="../modules/event-flick.html">event-flick</a></li>
969
<li><a href="../modules/event-focus.html">event-focus</a></li>
971
<li><a href="../modules/event-gestures.html">event-gestures</a></li>
973
<li><a href="../modules/event-hover.html">event-hover</a></li>
975
<li><a href="../modules/event-key.html">event-key</a></li>
977
<li><a href="../modules/event-mouseenter.html">event-mouseenter</a></li>
979
<li><a href="../modules/event-mousewheel.html">event-mousewheel</a></li>
981
<li><a href="../modules/event-move.html">event-move</a></li>
983
<li><a href="../modules/event-outside.html">event-outside</a></li>
985
<li><a href="../modules/event-resize.html">event-resize</a></li>
987
<li><a href="../modules/event-simulate.html">event-simulate</a></li>
989
<li><a href="../modules/event-synthetic.html">event-synthetic</a></li>
991
<li><a href="../modules/event-touch.html">event-touch</a></li>
993
<li><a href="../modules/event-valuechange.html">event-valuechange</a></li>
995
<li><a href="../modules/exec-command.html">exec-command</a></li>
997
<li><a href="../modules/features.html">features</a></li>
999
<li><a href="../modules/file.html">file</a></li>
1001
<li><a href="../modules/file-flash.html">file-flash</a></li>
1003
<li><a href="../modules/file-html5.html">file-html5</a></li>
1005
<li><a href="../modules/frame.html">frame</a></li>
1007
<li><a href="../modules/get.html">get</a></li>
1009
<li><a href="../modules/get-nodejs.html">get-nodejs</a></li>
1011
<li><a href="../modules/graphics.html">graphics</a></li>
1013
<li><a href="../modules/handlebars.html">handlebars</a></li>
1015
<li><a href="../modules/handlebars-base.html">handlebars-base</a></li>
1017
<li><a href="../modules/handlebars-compiler.html">handlebars-compiler</a></li>
1019
<li><a href="../modules/highlight.html">highlight</a></li>
1021
<li><a href="../modules/highlight-accentfold.html">highlight-accentfold</a></li>
1023
<li><a href="../modules/highlight-base.html">highlight-base</a></li>
1025
<li><a href="../modules/history.html">history</a></li>
1027
<li><a href="../modules/history-base.html">history-base</a></li>
1029
<li><a href="../modules/history-hash.html">history-hash</a></li>
1031
<li><a href="../modules/history-hash-ie.html">history-hash-ie</a></li>
1033
<li><a href="../modules/history-html5.html">history-html5</a></li>
1035
<li><a href="../modules/imageloader.html">imageloader</a></li>
1037
<li><a href="../modules/intl.html">intl</a></li>
1039
<li><a href="../modules/io.html">io</a></li>
1041
<li><a href="../modules/io-base.html">io-base</a></li>
1043
<li><a href="../modules/io-form.html">io-form</a></li>
1045
<li><a href="../modules/io-queue.html">io-queue</a></li>
1047
<li><a href="../modules/io-upload-iframe.html">io-upload-iframe</a></li>
1049
<li><a href="../modules/io-xdr.html">io-xdr</a></li>
1051
<li><a href="../modules/json.html">json</a></li>
1053
<li><a href="../modules/json-parse.html">json-parse</a></li>
1055
<li><a href="../modules/json-stringify.html">json-stringify</a></li>
1057
<li><a href="../modules/jsonp.html">jsonp</a></li>
1059
<li><a href="../modules/jsonp-url.html">jsonp-url</a></li>
1061
<li><a href="../modules/loader.html">loader</a></li>
1063
<li><a href="../modules/loader-base.html">loader-base</a></li>
1065
<li><a href="../modules/matrix.html">matrix</a></li>
1067
<li><a href="../modules/model.html">model</a></li>
1069
<li><a href="../modules/model-list.html">model-list</a></li>
1071
<li><a href="../modules/node.html">node</a></li>
1073
<li><a href="../modules/node-base.html">node-base</a></li>
1075
<li><a href="../modules/node-core.html">node-core</a></li>
1077
<li><a href="../modules/node-data.html">node-data</a></li>
1079
<li><a href="../modules/node-deprecated.html">node-deprecated</a></li>
1081
<li><a href="../modules/node-event-delegate.html">node-event-delegate</a></li>
1083
<li><a href="../modules/node-event-html5.html">node-event-html5</a></li>
1085
<li><a href="../modules/node-event-simulate.html">node-event-simulate</a></li>
1087
<li><a href="../modules/node-flick.html">node-flick</a></li>
1089
<li><a href="../modules/node-focusmanager.html">node-focusmanager</a></li>
1091
<li><a href="../modules/node-load.html">node-load</a></li>
1093
<li><a href="../modules/node-menunav.html">node-menunav</a></li>
1095
<li><a href="../modules/node-pluginhost.html">node-pluginhost</a></li>
1097
<li><a href="../modules/node-screen.html">node-screen</a></li>
1099
<li><a href="../modules/node-style.html">node-style</a></li>
1101
<li><a href="../modules/oop.html">oop</a></li>
1103
<li><a href="../modules/overlay.html">overlay</a></li>
1105
<li><a href="../modules/panel.html">panel</a></li>
1107
<li><a href="../modules/parallel.html">parallel</a></li>
1109
<li><a href="../modules/pjax.html">pjax</a></li>
1111
<li><a href="../modules/pjax-base.html">pjax-base</a></li>
1113
<li><a href="../modules/pjax-plugin.html">pjax-plugin</a></li>
1115
<li><a href="../modules/plugin.html">plugin</a></li>
1117
<li><a href="../modules/pluginhost.html">pluginhost</a></li>
1119
<li><a href="../modules/pluginhost-base.html">pluginhost-base</a></li>
1121
<li><a href="../modules/pluginhost-config.html">pluginhost-config</a></li>
1123
<li><a href="../modules/profiler.html">profiler</a></li>
1125
<li><a href="../modules/querystring.html">querystring</a></li>
1127
<li><a href="../modules/querystring-parse.html">querystring-parse</a></li>
1129
<li><a href="../modules/querystring-parse-simple.html">querystring-parse-simple</a></li>
1131
<li><a href="../modules/querystring-stringify.html">querystring-stringify</a></li>
1133
<li><a href="../modules/querystring-stringify-simple.html">querystring-stringify-simple</a></li>
1135
<li><a href="../modules/queue-promote.html">queue-promote</a></li>
1137
<li><a href="../modules/range-slider.html">range-slider</a></li>
1139
<li><a href="../modules/recordset.html">recordset</a></li>
1141
<li><a href="../modules/recordset-base.html">recordset-base</a></li>
1143
<li><a href="../modules/recordset-filter.html">recordset-filter</a></li>
1145
<li><a href="../modules/recordset-indexer.html">recordset-indexer</a></li>
1147
<li><a href="../modules/recordset-sort.html">recordset-sort</a></li>
1149
<li><a href="../modules/resize.html">resize</a></li>
1151
<li><a href="../modules/resize-contrain.html">resize-contrain</a></li>
1153
<li><a href="../modules/resize-plugin.html">resize-plugin</a></li>
1155
<li><a href="../modules/resize-proxy.html">resize-proxy</a></li>
1157
<li><a href="../modules/rollup.html">rollup</a></li>
1159
<li><a href="../modules/router.html">router</a></li>
1161
<li><a href="../modules/scrollview.html">scrollview</a></li>
1163
<li><a href="../modules/scrollview-base.html">scrollview-base</a></li>
1165
<li><a href="../modules/scrollview-base-ie.html">scrollview-base-ie</a></li>
1167
<li><a href="../modules/scrollview-list.html">scrollview-list</a></li>
1169
<li><a href="../modules/scrollview-paginator.html">scrollview-paginator</a></li>
1171
<li><a href="../modules/scrollview-scrollbars.html">scrollview-scrollbars</a></li>
1173
<li><a href="../modules/selection.html">selection</a></li>
1175
<li><a href="../modules/selector-css2.html">selector-css2</a></li>
1177
<li><a href="../modules/selector-css3.html">selector-css3</a></li>
1179
<li><a href="../modules/selector-native.html">selector-native</a></li>
1181
<li><a href="../modules/shim-plugin.html">shim-plugin</a></li>
1183
<li><a href="../modules/slider.html">slider</a></li>
1185
<li><a href="../modules/slider-base.html">slider-base</a></li>
1187
<li><a href="../modules/slider-value-range.html">slider-value-range</a></li>
1189
<li><a href="../modules/sortable.html">sortable</a></li>
1191
<li><a href="../modules/sortable-scroll.html">sortable-scroll</a></li>
1193
<li><a href="../modules/stylesheet.html">stylesheet</a></li>
1195
<li><a href="../modules/substitute.html">substitute</a></li>
1197
<li><a href="../modules/swf.html">swf</a></li>
1199
<li><a href="../modules/swfdetect.html">swfdetect</a></li>
1201
<li><a href="../modules/tabview.html">tabview</a></li>
1203
<li><a href="../modules/test.html">test</a></li>
1205
<li><a href="../modules/test-console.html">test-console</a></li>
1207
<li><a href="../modules/text.html">text</a></li>
1209
<li><a href="../modules/text-accentfold.html">text-accentfold</a></li>
1211
<li><a href="../modules/text-wordbreak.html">text-wordbreak</a></li>
1213
<li><a href="../modules/transition.html">transition</a></li>
1215
<li><a href="../modules/uploader.html">uploader</a></li>
1217
<li><a href="../modules/uploader-deprecated.html">uploader-deprecated</a></li>
1219
<li><a href="../modules/uploader-flash.html">uploader-flash</a></li>
1221
<li><a href="../modules/uploader-html5.html">uploader-html5</a></li>
1223
<li><a href="../modules/uploader-queue.html">uploader-queue</a></li>
1225
<li><a href="../modules/view.html">view</a></li>
1227
<li><a href="../modules/view-node-map.html">view-node-map</a></li>
1229
<li><a href="../modules/widget.html">widget</a></li>
1231
<li><a href="../modules/widget-anim.html">widget-anim</a></li>
1233
<li><a href="../modules/widget-autohide.html">widget-autohide</a></li>
1235
<li><a href="../modules/widget-base.html">widget-base</a></li>
1237
<li><a href="../modules/widget-base-ie.html">widget-base-ie</a></li>
1239
<li><a href="../modules/widget-buttons.html">widget-buttons</a></li>
1241
<li><a href="../modules/widget-child.html">widget-child</a></li>
1243
<li><a href="../modules/widget-htmlparser.html">widget-htmlparser</a></li>
1245
<li><a href="../modules/widget-locale.html">widget-locale</a></li>
1247
<li><a href="../modules/widget-modality.html">widget-modality</a></li>
1249
<li><a href="../modules/widget-parent.html">widget-parent</a></li>
1251
<li><a href="../modules/widget-position.html">widget-position</a></li>
1253
<li><a href="../modules/widget-position-align.html">widget-position-align</a></li>
1255
<li><a href="../modules/widget-position-constrain.html">widget-position-constrain</a></li>
1257
<li><a href="../modules/widget-skin.html">widget-skin</a></li>
1259
<li><a href="../modules/widget-stack.html">widget-stack</a></li>
1261
<li><a href="../modules/widget-stdmod.html">widget-stdmod</a></li>
1263
<li><a href="../modules/widget-uievents.html">widget-uievents</a></li>
1265
<li><a href="../modules/yql.html">yql</a></li>
1267
<li><a href="../modules/yui.html">yui</a></li>
1269
<li><a href="../modules/yui-base.html">yui-base</a></li>
1271
<li><a href="../modules/yui-later.html">yui-later</a></li>
1273
<li><a href="../modules/yui-log.html">yui-log</a></li>
1275
<li><a href="../modules/yui-throttle.html">yui-throttle</a></li>
1277
<li><a href="../modules/yui3.html">yui3</a></li>
1286
<div class="yui3-u-3-4">
1287
<div id="api-options">
1289
<label for="api-show-inherited">
1290
<input type="checkbox" id="api-show-inherited" checked>
1294
<label for="api-show-protected">
1295
<input type="checkbox" id="api-show-protected">
1299
<label for="api-show-private">
1300
<input type="checkbox" id="api-show-private">
1306
<div class="apidocs">
1307
<div id="docs-main">
1308
<div class="content">
1309
<h1 class="file-heading">File: widget/js/Widget.js</h1>
1312
<pre class="code prettyprint linenums">
1314
* Provides the base Widget class, with HTML Parser support
1321
* Provides the base Widget class
1324
* @submodule widget-base
1329
ClassNameManager = Y.ClassNameManager,
1331
_getClassName = ClassNameManager.getClassName,
1332
_getWidgetClassName,
1334
_toInitialCap = Y.cached(function(str) {
1335
return str.substring(0, 1).toUpperCase() + str.substring(1);
1338
// K-Weight, IE GC optimizations
1339
CONTENT = "content",
1340
VISIBLE = "visible",
1341
HIDDEN = "hidden",
1342
DISABLED = "disabled",
1343
FOCUSED = "focused",
1344
WIDTH = "width",
1345
HEIGHT = "height",
1346
BOUNDING_BOX = "boundingBox",
1347
CONTENT_BOX = "contentBox",
1348
PARENT_NODE = "parentNode",
1349
OWNER_DOCUMENT = "ownerDocument",
1350
AUTO = "auto",
1351
SRC_NODE = "srcNode",
1352
BODY = "body",
1353
TAB_INDEX = "tabIndex",
1354
ID = "id",
1355
RENDER = "render",
1356
RENDERED = "rendered",
1357
DESTROYED = "destroyed",
1358
STRINGS = "strings",
1359
DIV = "<div></div>",
1360
CHANGE = "Change",
1361
LOADING = "loading",
1363
_UISET = "_uiSet",
1365
EMPTY_STR = "",
1366
EMPTY_FN = function() {},
1373
UI_ATTRS = [VISIBLE, DISABLED, HEIGHT, WIDTH, FOCUSED, TAB_INDEX],
1375
WEBKIT = Y.UA.webkit,
1377
// Widget nodeid-to-instance map.
1381
* A base class for widgets, providing:
1383
* <li>The render lifecycle method, in addition to the init and destroy
1384
* lifecycle methods provide by Base</li>
1385
* <li>Abstract methods to support consistent MVC structure across
1386
* widgets: renderer, renderUI, bindUI, syncUI</li>
1387
* <li>Support for common widget attributes, such as boundingBox, contentBox, visible,
1388
* disabled, focused, strings</li>
1391
* @param config {Object} Object literal specifying widget configuration properties.
1397
function Widget(config) {
1398
Y.log('constructor called', 'life', 'widget');
1400
// kweight
1404
constructor = widget.constructor;
1407
widget._cssPrefix = constructor.CSS_PREFIX || _getClassName(constructor.NAME.toLowerCase());
1409
// We need a config for HTML_PARSER to work.
1410
config = config || {};
1412
Widget.superclass.constructor.call(widget, config);
1414
render = widget.get(RENDER);
1417
// Render could be a node or boolean
1418
if (render !== TRUE) {
1419
parentNode = render;
1421
widget.render(parentNode);
1426
* Static property provides a string to identify the class.
1428
* Currently used to apply class identifiers to the bounding box
1429
* and to classify events fired by the widget.
1436
Widget.NAME = "widget";
1439
* Constant used to identify state changes originating from
1440
* the DOM (as opposed to the JavaScript model).
1447
UI = Widget.UI_SRC = "ui";
1450
* Static property used to define the default attribute
1451
* configuration for the Widget.
1457
Widget.ATTRS = ATTRS;
1459
// Trying to optimize kweight by setting up attrs this way saves about 0.4K min'd
1464
* @default Generated using guid()
1469
valueFn: "_guid",
1474
* Flag indicating whether or not this Widget
1475
* has been through the render lifecycle phase.
1477
* @attribute rendered
1488
* @attribute boundingBox
1489
* @description The outermost DOM node for the Widget, used for sizing and positioning
1490
* of a Widget as well as a containing element for any decorator elements used
1492
* @type String | Node
1495
ATTRS[BOUNDING_BOX] = {
1497
setter: "_setBB",
1502
* @attribute contentBox
1503
* @description A DOM node that is a direct descendant of a Widget's bounding box that
1504
* houses its content.
1505
* @type String | Node
1508
ATTRS[CONTENT_BOX] = {
1509
valueFn:"_defaultCB",
1510
setter: "_setCB",
1515
* @attribute tabIndex
1516
* @description Number (between -32767 to 32767) indicating the widget's
1517
* position in the default tab flow. The value is used to set the
1518
* "tabIndex" attribute on the widget's bounding box. Negative values allow
1519
* the widget to receive DOM focus programmatically (by calling the focus
1520
* method), while being removed from the default tab flow. A value of
1521
* null removes the "tabIndex" attribute from the widget's bounding box.
1525
ATTRS[TAB_INDEX] = {
1527
validator: "_validTabIndex"
1531
* @attribute focused
1532
* @description Boolean indicating if the Widget, or one of its descendants,
1544
* @attribute disabled
1545
* @description Boolean indicating if the Widget should be disabled. The disabled implementation
1546
* is left to the specific classes extending widget.
1555
* @attribute visible
1556
* @description Boolean indicating weather or not the Widget is visible.
1566
* @description String with units, or number, representing the height of the Widget. If a number is provided,
1567
* the default unit, defined by the Widgets DEF_UNIT, property is used.
1568
* @default EMPTY_STR
1569
* @type {String | Number}
1577
* @description String with units, or number, representing the width of the Widget. If a number is provided,
1578
* the default unit, defined by the Widgets DEF_UNIT, property is used.
1579
* @default EMPTY_STR
1580
* @type {String | Number}
1587
* @attribute strings
1588
* @description Collection of strings used to label elements of the Widget's UI.
1594
setter: "_strSetter",
1595
getter: "_strGetter"
1599
* Whether or not to render the widget automatically after init, and optionally, to which parent node.
1602
* @type boolean | Node
1611
* The css prefix which the static Widget.getClassName method should use when constructing class names
1613
* @property CSS_PREFIX
1615
* @default Widget.NAME.toLowerCase()
1619
Widget.CSS_PREFIX = _getClassName(Widget.NAME.toLowerCase());
1622
* Generate a standard prefixed classname for the Widget, prefixed by the default prefix defined
1623
* by the <code>Y.config.classNamePrefix</code> attribute used by <code>ClassNameManager</code> and
1624
* <code>Widget.NAME.toLowerCase()</code> (e.g. "yui-widget-xxxxx-yyyyy", based on default values for
1625
* the prefix and widget class name).
1627
* The instance based version of this method can be used to generate standard prefixed classnames,
1628
* based on the instances NAME, as opposed to Widget.NAME. This method should be used when you
1629
* need to use a constant class name across different types instances.
1631
* @method getClassName
1632
* @param {String*} args* 0..n strings which should be concatenated, using the default separator defined by ClassNameManager, to create the class name
1634
Widget.getClassName = function() {
1635
// arguments needs to be array'fied to concat
1636
return _getClassName.apply(ClassNameManager, [Widget.CSS_PREFIX].concat(Y.Array(arguments), true));
1639
_getWidgetClassName = Widget.getClassName;
1642
* Returns the widget instance whose bounding box contains, or is, the given node.
1644
* In the case of nested widgets, the nearest bounding box ancestor is used to
1645
* return the widget instance.
1649
* @param node {Node | String} The node for which to return a Widget instance. If a selector
1650
* string is passed in, which selects more than one node, the first node found is used.
1651
* @return {Widget} Widget instance, or null if not found.
1653
Widget.getByNode = function(node) {
1656
widgetMarker = _getWidgetClassName();
1658
node = Node.one(node);
1660
node = node.ancestor("." + widgetMarker, true);
1662
nodeid = node.get(ID);
1663
widget = _instances[nodeid];
1667
return widget || null;
1670
Y.extend(Widget, Y.Base, {
1673
* Returns a class name prefixed with the the value of the
1674
* <code>YUI.config.classNamePrefix</code> attribute + the instances <code>NAME</code> property.
1675
* Uses <code>YUI.config.classNameDelimiter</code> attribute to delimit the provided strings.
1679
* // returns "yui-slider-foo-bar", for a slider instance
1680
* var scn = slider.getClassName('foo','bar');
1682
* // returns "yui-overlay-foo-bar", for an overlay instance
1683
* var ocn = overlay.getClassName('foo','bar');
1685
* </code>
1687
* @method getClassName
1688
* @param {String}+ One or more classname bits to be joined and prefixed
1690
getClassName: function () {
1691
return _getClassName.apply(ClassNameManager, [this._cssPrefix].concat(Y.Array(arguments), true));
1695
* Initializer lifecycle implementation for the Widget class. Registers the
1696
* widget instance, and runs through the Widget's HTML_PARSER definition.
1698
* @method initializer
1700
* @param config {Object} Configuration object literal for the widget
1702
initializer: function(config) {
1703
Y.log('initializer called', 'life', 'widget');
1705
var bb = this.get(BOUNDING_BOX);
1706
if (bb instanceof Node) {
1707
this._mapInstance(bb.get(ID));
1711
* Notification event, which widget implementations can fire, when
1712
* they change the content of the widget. This event has no default
1713
* behavior and cannot be prevented, so the "on" or "after"
1714
* moments are effectively equivalent (with on listeners being invoked before
1717
* @event widget:contentUpdate
1718
* @preventable false
1719
* @param {EventFacade} e The Event Facade
1722
if (this._applyParser) {
1723
this._applyParser(config);
1728
* Utility method used to add an entry to the boundingBox id to instance map.
1730
* This method can be used to populate the instance with lazily created boundingBox Node references.
1732
* @method _mapInstance
1733
* @param {String} The boundingBox id
1736
_mapInstance : function(id) {
1737
if (!(_instances[id])) {
1738
_instances[id] = this;
1743
* Destructor lifecycle implementation for the Widget class. Purges events attached
1744
* to the bounding box and content box, removes them from the DOM and removes
1745
* the Widget from the list of registered widgets.
1747
* @method destructor
1750
destructor: function() {
1751
Y.log('destructor called', 'life', 'widget');
1753
var boundingBox = this.get(BOUNDING_BOX),
1756
if (boundingBox instanceof Node) {
1757
bbid = boundingBox.get(ID);
1759
if (bbid in _instances) {
1760
delete _instances[bbid];
1769
* Destroy lifecycle method. Fires the destroy
1770
* event, prior to invoking destructors for the
1773
* Overrides Base's implementation, to support arguments to destroy
1776
* Subscribers to the destroy
1777
* event can invoke preventDefault on the event object, to prevent destruction
1781
* @param destroyAllNodes {Boolean} If true, all nodes contained within the Widget are removed and destroyed. Defaults to false due to potentially high run-time cost.
1782
* @return {Widget} A reference to this object
1785
destroy: function(destroyAllNodes) {
1786
this._destroyAllNodes = destroyAllNodes;
1787
return Widget.superclass.destroy.apply(this);
1791
* Removes and destroys the widgets rendered boundingBox, contentBox,
1792
* and detaches bound UI events.
1794
* @method _destroyBox
1797
_destroyBox : function() {
1799
var boundingBox = this.get(BOUNDING_BOX),
1800
contentBox = this.get(CONTENT_BOX),
1801
deep = this._destroyAllNodes,
1804
same = boundingBox && boundingBox.compareTo(contentBox);
1806
if (this.UI_EVENTS) {
1807
this._destroyUIEvents();
1810
this._unbindUI(boundingBox);
1813
// Removes and destroys all child nodes.
1814
boundingBox.empty();
1815
boundingBox.remove(TRUE);
1818
contentBox.remove(TRUE);
1821
boundingBox.remove(TRUE);
1827
* Establishes the initial DOM for the widget. Invoking this
1828
* method will lead to the creating of all DOM elements for
1829
* the widget (or the manipulation of existing DOM elements
1830
* for the progressive enhancement use case).
1832
* This method should only be invoked once for an initialized
1836
* It delegates to the widget specific renderer method to do
1843
* @param parentNode {Object | String} Optional. The Node under which the
1844
* Widget is to be rendered. This can be a Node instance or a CSS selector string.
1846
* If the selector string returns more than one Node, the first node will be used
1847
* as the parentNode. NOTE: This argument is required if both the boundingBox and contentBox
1848
* are not currently in the document. If it's not provided, the Widget will be rendered
1849
* to the body of the current document in this case.
1852
render: function(parentNode) {
1853
if (this.get(DESTROYED)) { Y.log("Render failed; widget has been destroyed", "error", "widget"); }
1855
if (!this.get(DESTROYED) && !this.get(RENDERED)) {
1857
* Lifecycle event for the render phase, fired prior to rendering the UI
1858
* for the widget (prior to invoking the widget's renderer method).
1860
* Subscribers to the "on" moment of this event, will be notified
1861
* before the widget is rendered.
1864
* Subscribers to the "after" moment of this event, will be notified
1865
* after rendering is complete.
1868
* @event widget:render
1869
* @preventable _defRenderFn
1870
* @param {EventFacade} e The Event Facade
1872
this.publish(RENDER, {
1875
defaultTargetOnly:TRUE,
1876
defaultFn: this._defRenderFn
1879
this.fire(RENDER, {parentNode: (parentNode) ? Node.one(parentNode) : null});
1885
* Default render handler
1887
* @method _defRenderFn
1889
* @param {EventFacade} e The Event object
1890
* @param {Node} parentNode The parent node to render to, if passed in to the <code>render</code> method
1892
_defRenderFn : function(e) {
1893
this._parentNode = e.parentNode;
1896
this._set(RENDERED, TRUE);
1898
this._removeLoadingClassNames();
1902
* Creates DOM (or manipulates DOM for progressive enhancement)
1903
* This method is invoked by render() and is not chained
1904
* automatically for the class hierarchy (unlike initializer, destructor)
1905
* so it should be chained manually for subclasses if required.
1910
renderer: function() {
1911
// kweight
1925
* Configures/Sets up listeners to bind Widget State to UI/DOM
1927
* This method is not called by framework and is not chained
1928
* automatically for the class hierarchy.
1936
* Adds nodes to the DOM
1938
* This method is not called by framework and is not chained
1939
* automatically for the class hierarchy.
1947
* Refreshes the rendered UI, based on Widget State
1949
* This method is not called by framework and is not chained
1950
* automatically for the class hierarchy.
1960
* @description Hides the Widget by setting the "visible" attribute to "false".
1964
return this.set(VISIBLE, FALSE);
1969
* @description Shows the Widget by setting the "visible" attribute to "true".
1973
return this.set(VISIBLE, TRUE);
1978
* @description Causes the Widget to receive the focus by setting the "focused"
1979
* attribute to "true".
1982
focus: function () {
1983
return this._set(FOCUSED, TRUE);
1988
* @description Causes the Widget to lose focus by setting the "focused" attribute
1989
* to "false"
1993
return this._set(FOCUSED, FALSE);
1998
* @description Set the Widget's "disabled" attribute to "false".
2001
enable: function() {
2002
return this.set(DISABLED, FALSE);
2007
* @description Set the Widget's "disabled" attribute to "true".
2010
disable: function() {
2011
return this.set(DISABLED, TRUE);
2017
* @param {boolean} expand
2019
_uiSizeCB : function(expand) {
2020
this.get(CONTENT_BOX).toggleClass(_getWidgetClassName(CONTENT, "expanded"), expand);
2024
* Helper method to collect the boundingBox and contentBox and append to the provided parentNode, if not
2025
* already a child. The owner document of the boundingBox, or the owner document of the contentBox will be used
2026
* as the document into which the Widget is rendered if a parentNode is node is not provided. If both the boundingBox and
2027
* the contentBox are not currently in the document, and no parentNode is provided, the widget will be rendered
2028
* to the current document's body.
2030
* @method _renderBox
2032
* @param {Node} parentNode The parentNode to render the widget to. If not provided, and both the boundingBox and
2033
* the contentBox are not currently in the document, the widget will be rendered to the current document's body.
2035
_renderBox: function(parentNode) {
2037
// TODO: Performance Optimization [ More effective algo to reduce Node refs, compares, replaces? ]
2039
var widget = this, // kweight
2040
contentBox = widget.get(CONTENT_BOX),
2041
boundingBox = widget.get(BOUNDING_BOX),
2042
srcNode = widget.get(SRC_NODE),
2043
defParentNode = widget.DEF_PARENT_NODE,
2045
doc = (srcNode && srcNode.get(OWNER_DOCUMENT)) || boundingBox.get(OWNER_DOCUMENT) || contentBox.get(OWNER_DOCUMENT);
2047
// If srcNode (assume it's always in doc), have contentBox take its place (widget render responsible for re-use of srcNode contents)
2048
if (srcNode && !srcNode.compareTo(contentBox) && !contentBox.inDoc(doc)) {
2049
srcNode.replace(contentBox);
2052
if (!boundingBox.compareTo(contentBox.get(PARENT_NODE)) && !boundingBox.compareTo(contentBox)) {
2053
// If contentBox box is already in the document, have boundingBox box take it's place
2054
if (contentBox.inDoc(doc)) {
2055
contentBox.replace(boundingBox);
2057
boundingBox.appendChild(contentBox);
2060
parentNode = parentNode || (defParentNode && Node.one(defParentNode));
2063
parentNode.appendChild(boundingBox);
2064
} else if (!boundingBox.inDoc(doc)) {
2065
Node.one(BODY).insert(boundingBox, 0);
2070
* Setter for the boundingBox attribute
2074
* @param Node/String
2077
_setBB: function(node) {
2078
return this._setBox(this.get(ID), node, this.BOUNDING_TEMPLATE);
2082
* Setter for the contentBox attribute
2086
* @param {Node|String} node
2089
_setCB: function(node) {
2090
return (this.CONTENT_TEMPLATE === null) ? this.get(BOUNDING_BOX) : this._setBox(null, node, this.CONTENT_TEMPLATE);
2094
* Returns the default value for the contentBox attribute.
2096
* For the Widget class, this will be the srcNode if provided, otherwise null (resulting in
2097
* a new contentBox node instance being created)
2099
* @method _defaultCB
2102
_defaultCB : function(node) {
2103
return this.get(SRC_NODE) || null;
2107
* Helper method to set the bounding/content box, or create it from
2108
* the provided template if not found.
2113
* @param {String} id The node's id attribute
2114
* @param {Node|String} node The node reference
2115
* @param {String} template HTML string template for the node
2116
* @return {Node} The node
2118
_setBox : function(id, node, template) {
2119
node = Node.one(node) || Node.create(template);
2120
if (!node.get(ID)) {
2121
node.set(ID, id || Y.guid());
2127
* Initializes the UI state for the Widget's bounding/content boxes.
2132
_renderUI: function() {
2133
this._renderBoxClassNames();
2134
this._renderBox(this._parentNode);
2138
* Applies standard class names to the boundingBox and contentBox
2140
* @method _renderBoxClassNames
2143
_renderBoxClassNames : function() {
2144
var classes = this._getClasses(),
2146
boundingBox = this.get(BOUNDING_BOX),
2149
boundingBox.addClass(_getWidgetClassName());
2151
// Start from Widget Sub Class
2152
for (i = classes.length-3; i >= 0; i--) {
2154
boundingBox.addClass(cl.CSS_PREFIX || _getClassName(cl.NAME.toLowerCase()));
2157
// Use instance based name for content box
2158
this.get(CONTENT_BOX).addClass(this.getClassName(CONTENT));
2162
* Removes class names representative of the widget's loading state from
2165
* @method _removeLoadingClassNames
2168
_removeLoadingClassNames: function () {
2170
var boundingBox = this.get(BOUNDING_BOX),
2171
contentBox = this.get(CONTENT_BOX),
2172
instClass = this.getClassName(LOADING),
2173
widgetClass = _getWidgetClassName(LOADING);
2175
boundingBox.removeClass(widgetClass)
2176
.removeClass(instClass);
2178
contentBox.removeClass(widgetClass)
2179
.removeClass(instClass);
2183
* Sets up DOM and CustomEvent listeners for the widget.
2188
_bindUI: function() {
2189
this._bindAttrUI(this._UI_ATTRS.BIND);
2197
_unbindUI : function(boundingBox) {
2198
this._unbindDOM(boundingBox);
2202
* Sets up DOM listeners, on elements rendered by the widget.
2207
_bindDOM : function() {
2208
var oDocument = this.get(BOUNDING_BOX).get(OWNER_DOCUMENT),
2209
focusHandle = Widget._hDocFocus;
2211
// Shared listener across all Widgets.
2213
focusHandle = Widget._hDocFocus = oDocument.on("focus", this._onDocFocus, this);
2214
focusHandle.listeners = {
2219
focusHandle.listeners[Y.stamp(this, true)] = true;
2220
focusHandle.listeners.count++;
2222
// Fix for Webkit:
2223
// Document doesn't receive focus in Webkit when the user mouses
2224
// down on it, so the "focused" attribute won't get set to the
2225
// correct value. Keeping this instance based for now, potential better performance.
2226
// Otherwise we'll end up looking up widgets from the DOM on every mousedown.
2228
this._hDocMouseDown = oDocument.on("mousedown", this._onDocMouseDown, this);
2233
* @method _unbindDOM
2236
_unbindDOM : function(boundingBox) {
2238
var focusHandle = Widget._hDocFocus,
2239
yuid = Y.stamp(this, true),
2241
mouseHandle = this._hDocMouseDown;
2245
focusListeners = focusHandle.listeners;
2247
if (focusListeners[yuid]) {
2248
delete focusListeners[yuid];
2249
focusListeners.count--;
2252
if (focusListeners.count === 0) {
2253
focusHandle.detach();
2254
Widget._hDocFocus = null;
2258
if (WEBKIT && mouseHandle) {
2259
mouseHandle.detach();
2264
* Updates the widget UI to reflect the attribute state.
2269
_syncUI: function() {
2270
this._syncAttrUI(this._UI_ATTRS.SYNC);
2274
* Sets the height on the widget's bounding box element
2276
* @method _uiSetHeight
2278
* @param {String | Number} val
2280
_uiSetHeight: function(val) {
2281
this._uiSetDim(HEIGHT, val);
2282
this._uiSizeCB((val !== EMPTY_STR && val !== AUTO));
2286
* Sets the width on the widget's bounding box element
2288
* @method _uiSetWidth
2290
* @param {String | Number} val
2292
_uiSetWidth: function(val) {
2293
this._uiSetDim(WIDTH, val);
2299
* @param {String} dim The dimension - "width" or "height"
2300
* @param {Number | String} val The value to set
2302
_uiSetDim: function(dimension, val) {
2303
this.get(BOUNDING_BOX).setStyle(dimension, L.isNumber(val) ? val + this.DEF_UNIT : val);
2307
* Sets the visible state for the UI
2309
* @method _uiSetVisible
2311
* @param {boolean} val
2313
_uiSetVisible: function(val) {
2314
this.get(BOUNDING_BOX).toggleClass(this.getClassName(HIDDEN), !val);
2318
* Sets the disabled state for the UI
2320
* @method _uiSetDisabled
2322
* @param {boolean} val
2324
_uiSetDisabled: function(val) {
2325
this.get(BOUNDING_BOX).toggleClass(this.getClassName(DISABLED), val);
2329
* Sets the focused state for the UI
2331
* @method _uiSetFocused
2333
* @param {boolean} val
2334
* @param {string} src String representing the source that triggered an update to
2337
_uiSetFocused: function(val, src) {
2338
var boundingBox = this.get(BOUNDING_BOX);
2339
boundingBox.toggleClass(this.getClassName(FOCUSED), val);
2343
boundingBox.focus();
2351
* Set the tabIndex on the widget's rendered UI
2353
* @method _uiSetTabIndex
2357
_uiSetTabIndex: function(index) {
2358
var boundingBox = this.get(BOUNDING_BOX);
2360
if (L.isNumber(index)) {
2361
boundingBox.set(TAB_INDEX, index);
2363
boundingBox.removeAttribute(TAB_INDEX);
2368
* @method _onDocMouseDown
2369
* @description "mousedown" event handler for the owner document of the
2370
* widget's bounding box.
2372
* @param {EventFacade} evt The event facade for the DOM focus event
2374
_onDocMouseDown: function (evt) {
2375
if (this._domFocus) {
2376
this._onDocFocus(evt);
2381
* DOM focus event handler, used to sync the state of the Widget with the DOM
2383
* @method _onDocFocus
2385
* @param {EventFacade} evt The event facade for the DOM focus event
2387
_onDocFocus: function (evt) {
2388
var widget = Widget.getByNode(evt.target),
2389
activeWidget = Widget._active;
2391
if (activeWidget && (activeWidget !== widget)) {
2392
activeWidget._domFocus = false;
2393
activeWidget._set(FOCUSED, false, {src:UI});
2395
Widget._active = null;
2399
widget._domFocus = true;
2400
widget._set(FOCUSED, true, {src:UI});
2402
Widget._active = widget;
2407
* Generic toString implementation for all widgets.
2410
* @return {String} The default string value for the widget [ displays the NAME of the instance, and the unique id ]
2412
toString: function() {
2413
// Using deprecated name prop for kweight squeeze.
2414
return this.name + "[" + this.get(ID) + "]";
2418
* Default unit to use for dimension values
2420
* @property DEF_UNIT
2423
DEF_UNIT : "px",
2426
* Default node to render the bounding box to. If not set,
2427
* will default to the current document body.
2429
* @property DEF_PARENT_NODE
2430
* @type String | Node
2432
DEF_PARENT_NODE : null,
2435
* Property defining the markup template for content box. If your Widget doesn't
2436
* need the dual boundingBox/contentBox structure, set CONTENT_TEMPLATE to null,
2437
* and contentBox and boundingBox will both point to the same Node.
2439
* @property CONTENT_TEMPLATE
2442
CONTENT_TEMPLATE : DIV,
2445
* Property defining the markup template for bounding box.
2447
* @property BOUNDING_TEMPLATE
2450
BOUNDING_TEMPLATE : DIV,
2456
_guid : function() {
2461
* @method _validTabIndex
2463
* @param {Number} tabIndex
2465
_validTabIndex : function (tabIndex) {
2466
return (L.isNumber(tabIndex) || L.isNull(tabIndex));
2470
* Binds after listeners for the list of attributes provided
2472
* @method _bindAttrUI
2474
* @param {Array} attrs
2476
_bindAttrUI : function(attrs) {
2480
for (i = 0; i < l; i++) {
2481
this.after(attrs[i] + CHANGE, this._setAttrUI);
2486
* Invokes the _uiSet&#61;ATTR NAME&#62; method for the list of attributes provided
2488
* @method _syncAttrUI
2490
* @param {Array} attrs
2492
_syncAttrUI : function(attrs) {
2493
var i, l = attrs.length, attr;
2494
for (i = 0; i < l; i++) {
2496
this[_UISET + _toInitialCap(attr)](this.get(attr));
2501
* @method _setAttrUI
2503
* @param {EventFacade} e
2505
_setAttrUI : function(e) {
2506
if (e.target === this) {
2507
this[_UISET + _toInitialCap(e.attrName)](e.newVal, e.src);
2512
* The default setter for the strings attribute. Merges partial sets
2513
* into the full string set, to allow users to partial sets of strings
2515
* @method _strSetter
2517
* @param {Object} strings
2518
* @return {String} The full set of strings to set
2520
_strSetter : function(strings) {
2521
return Y.merge(this.get(STRINGS), strings);
2525
* Helper method to get a specific string value
2527
* @deprecated Used by deprecated WidgetLocale implementations.
2529
* @param {String} key
2530
* @return {String} The string
2532
getString : function(key) {
2533
return this.get(STRINGS)[key];
2537
* Helper method to get the complete set of strings for the widget
2539
* @deprecated Used by deprecated WidgetLocale implementations.
2540
* @method getStrings
2541
* @param {String} key
2542
* @return {String} The strings
2544
getStrings : function() {
2545
return this.get(STRINGS);
2549
* The lists of UI attributes to bind and sync for widget's _bindUI and _syncUI implementations
2551
* @property _UI_ATTRS
2572
<script src="../assets/vendor/prettify/prettify-min.js"></script>
2573
<script>prettyPrint();</script>
2574
<script src="../assets/js/yui-prettify.js"></script>
2575
<script src="../assets/../api.js"></script>
2576
<script src="../assets/js/api-filter.js"></script>
2577
<script src="../assets/js/api-list.js"></script>
2578
<script src="../assets/js/api-search.js"></script>
2579
<script src="../assets/js/apidocs.js"></script>