extjs-rails 4.1.0.alpha1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (517) hide show
  1. data/.gitignore +18 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +36 -0
  4. data/README.md +29 -0
  5. data/Rakefile +2 -0
  6. data/app/assets/javascripts/extjs-rails/extjs-rails.js +1 -0
  7. data/app/assets/javascripts/extjs-rails/index.js.erb +9 -0
  8. data/app/assets/javascripts/extjs-rails/sdk.jsb3 +2017 -0
  9. data/app/assets/javascripts/extjs-rails/src/AbstractComponent.js +3290 -0
  10. data/app/assets/javascripts/extjs-rails/src/AbstractManager.js +144 -0
  11. data/app/assets/javascripts/extjs-rails/src/AbstractPlugin.js +72 -0
  12. data/app/assets/javascripts/extjs-rails/src/Action.js +276 -0
  13. data/app/assets/javascripts/extjs-rails/src/Ajax.js +99 -0
  14. data/app/assets/javascripts/extjs-rails/src/Component.js +1344 -0
  15. data/app/assets/javascripts/extjs-rails/src/ComponentLoader.js +202 -0
  16. data/app/assets/javascripts/extjs-rails/src/ComponentManager.js +47 -0
  17. data/app/assets/javascripts/extjs-rails/src/ComponentQuery.js +521 -0
  18. data/app/assets/javascripts/extjs-rails/src/Editor.js +494 -0
  19. data/app/assets/javascripts/extjs-rails/src/ElementLoader.js +404 -0
  20. data/app/assets/javascripts/extjs-rails/src/FocusManager.js +712 -0
  21. data/app/assets/javascripts/extjs-rails/src/Img.js +111 -0
  22. data/app/assets/javascripts/extjs-rails/src/Layer.js +543 -0
  23. data/app/assets/javascripts/extjs-rails/src/LoadMask.js +432 -0
  24. data/app/assets/javascripts/extjs-rails/src/ModelManager.js +186 -0
  25. data/app/assets/javascripts/extjs-rails/src/PluginManager.js +110 -0
  26. data/app/assets/javascripts/extjs-rails/src/ProgressBar.js +336 -0
  27. data/app/assets/javascripts/extjs-rails/src/Shadow.js +233 -0
  28. data/app/assets/javascripts/extjs-rails/src/ShadowPool.js +43 -0
  29. data/app/assets/javascripts/extjs-rails/src/Template.js +331 -0
  30. data/app/assets/javascripts/extjs-rails/src/XTemplate.js +365 -0
  31. data/app/assets/javascripts/extjs-rails/src/XTemplateCompiler.js +450 -0
  32. data/app/assets/javascripts/extjs-rails/src/XTemplateParser.js +249 -0
  33. data/app/assets/javascripts/extjs-rails/src/ZIndexManager.js +519 -0
  34. data/app/assets/javascripts/extjs-rails/src/app/Application.js +271 -0
  35. data/app/assets/javascripts/extjs-rails/src/app/Controller.js +458 -0
  36. data/app/assets/javascripts/extjs-rails/src/app/EventBus.js +112 -0
  37. data/app/assets/javascripts/extjs-rails/src/button/Button.js +1483 -0
  38. data/app/assets/javascripts/extjs-rails/src/button/Cycle.js +215 -0
  39. data/app/assets/javascripts/extjs-rails/src/button/Split.js +99 -0
  40. data/app/assets/javascripts/extjs-rails/src/chart/Callout.js +140 -0
  41. data/app/assets/javascripts/extjs-rails/src/chart/Chart.js +966 -0
  42. data/app/assets/javascripts/extjs-rails/src/chart/Highlight.js +172 -0
  43. data/app/assets/javascripts/extjs-rails/src/chart/Label.js +241 -0
  44. data/app/assets/javascripts/extjs-rails/src/chart/Legend.js +474 -0
  45. data/app/assets/javascripts/extjs-rails/src/chart/LegendItem.js +217 -0
  46. data/app/assets/javascripts/extjs-rails/src/chart/Mask.js +230 -0
  47. data/app/assets/javascripts/extjs-rails/src/chart/MaskLayer.js +48 -0
  48. data/app/assets/javascripts/extjs-rails/src/chart/Navigation.js +79 -0
  49. data/app/assets/javascripts/extjs-rails/src/chart/Shape.js +106 -0
  50. data/app/assets/javascripts/extjs-rails/src/chart/Tip.js +98 -0
  51. data/app/assets/javascripts/extjs-rails/src/chart/TipSurface.js +42 -0
  52. data/app/assets/javascripts/extjs-rails/src/chart/axis/Abstract.js +73 -0
  53. data/app/assets/javascripts/extjs-rails/src/chart/axis/Axis.js +961 -0
  54. data/app/assets/javascripts/extjs-rails/src/chart/axis/Category.js +130 -0
  55. data/app/assets/javascripts/extjs-rails/src/chart/axis/Gauge.js +203 -0
  56. data/app/assets/javascripts/extjs-rails/src/chart/axis/Numeric.js +235 -0
  57. data/app/assets/javascripts/extjs-rails/src/chart/axis/Radial.js +204 -0
  58. data/app/assets/javascripts/extjs-rails/src/chart/axis/Time.js +135 -0
  59. data/app/assets/javascripts/extjs-rails/src/chart/series/Area.js +803 -0
  60. data/app/assets/javascripts/extjs-rails/src/chart/series/Bar.js +853 -0
  61. data/app/assets/javascripts/extjs-rails/src/chart/series/Cartesian.js +328 -0
  62. data/app/assets/javascripts/extjs-rails/src/chart/series/Column.js +104 -0
  63. data/app/assets/javascripts/extjs-rails/src/chart/series/Gauge.js +490 -0
  64. data/app/assets/javascripts/extjs-rails/src/chart/series/Line.js +1104 -0
  65. data/app/assets/javascripts/extjs-rails/src/chart/series/Pie.js +1072 -0
  66. data/app/assets/javascripts/extjs-rails/src/chart/series/Radar.js +440 -0
  67. data/app/assets/javascripts/extjs-rails/src/chart/series/Scatter.js +668 -0
  68. data/app/assets/javascripts/extjs-rails/src/chart/series/Series.js +443 -0
  69. data/app/assets/javascripts/extjs-rails/src/chart/theme/Base.js +175 -0
  70. data/app/assets/javascripts/extjs-rails/src/chart/theme/Theme.js +253 -0
  71. data/app/assets/javascripts/extjs-rails/src/container/AbstractContainer.js +1062 -0
  72. data/app/assets/javascripts/extjs-rails/src/container/ButtonGroup.js +143 -0
  73. data/app/assets/javascripts/extjs-rails/src/container/Container.js +212 -0
  74. data/app/assets/javascripts/extjs-rails/src/container/DockingContainer.js +265 -0
  75. data/app/assets/javascripts/extjs-rails/src/container/Viewport.js +184 -0
  76. data/app/assets/javascripts/extjs-rails/src/core/dom/Element.form.js +50 -0
  77. data/app/assets/javascripts/extjs-rails/src/core/dom/Element.static-more.js +159 -0
  78. data/app/assets/javascripts/extjs-rails/src/core/examples/index.html +321 -0
  79. data/app/assets/javascripts/extjs-rails/src/core/examples/index.js +6 -0
  80. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/CTO.js +25 -0
  81. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/CoolGuy.js +20 -0
  82. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Developer.js +43 -0
  83. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Gun.js +3 -0
  84. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/HumanResource.js +23 -0
  85. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Musician.js +20 -0
  86. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Person.js +50 -0
  87. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanComposeSongs.js +9 -0
  88. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanPlayGuitar.js +9 -0
  89. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanSing.js +18 -0
  90. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/A.js +3 -0
  91. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/B.js +3 -0
  92. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/C.js +3 -0
  93. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/D.js +3 -0
  94. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/E.js +3 -0
  95. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/A.js +3 -0
  96. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/B.js +4 -0
  97. data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/C.js +3 -0
  98. data/app/assets/javascripts/extjs-rails/src/core/src/EventManager.js +1167 -0
  99. data/app/assets/javascripts/extjs-rails/src/core/src/EventObject.js +883 -0
  100. data/app/assets/javascripts/extjs-rails/src/core/src/Ext-more.js +1283 -0
  101. data/app/assets/javascripts/extjs-rails/src/core/src/Ext.js +736 -0
  102. data/app/assets/javascripts/extjs-rails/src/core/src/Support.js +662 -0
  103. data/app/assets/javascripts/extjs-rails/src/core/src/class/Base.js +1085 -0
  104. data/app/assets/javascripts/extjs-rails/src/core/src/class/Class.js +676 -0
  105. data/app/assets/javascripts/extjs-rails/src/core/src/class/ClassManager.js +1591 -0
  106. data/app/assets/javascripts/extjs-rails/src/core/src/class/Loader.js +1423 -0
  107. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.alignment.js +173 -0
  108. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.insertion.js +193 -0
  109. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.js +681 -0
  110. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.position.js +356 -0
  111. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.static.js +474 -0
  112. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.style.js +851 -0
  113. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.traversal.js +180 -0
  114. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractHelper.js +291 -0
  115. data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractQuery.js +72 -0
  116. data/app/assets/javascripts/extjs-rails/src/core/src/dom/CompositeElement.js +75 -0
  117. data/app/assets/javascripts/extjs-rails/src/core/src/dom/CompositeElementLite.js +436 -0
  118. data/app/assets/javascripts/extjs-rails/src/core/src/dom/DomQuery-aria.js +1049 -0
  119. data/app/assets/javascripts/extjs-rails/src/core/src/env/Browser.js +186 -0
  120. data/app/assets/javascripts/extjs-rails/src/core/src/env/FeatureDetector.js +274 -0
  121. data/app/assets/javascripts/extjs-rails/src/core/src/env/OS.js +141 -0
  122. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Array.js +1205 -0
  123. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Date.js +1463 -0
  124. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Error.js +326 -0
  125. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Function.js +485 -0
  126. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Number.js +175 -0
  127. data/app/assets/javascripts/extjs-rails/src/core/src/lang/Object.js +606 -0
  128. data/app/assets/javascripts/extjs-rails/src/core/src/lang/String.js +333 -0
  129. data/app/assets/javascripts/extjs-rails/src/core/src/misc/JSON.js +236 -0
  130. data/app/assets/javascripts/extjs-rails/src/core/src/perf/Accumulator.js +244 -0
  131. data/app/assets/javascripts/extjs-rails/src/core/src/perf/Monitor.js +197 -0
  132. data/app/assets/javascripts/extjs-rails/src/core/src/util/DelayedTask.js +71 -0
  133. data/app/assets/javascripts/extjs-rails/src/core/src/util/Event.js +215 -0
  134. data/app/assets/javascripts/extjs-rails/src/core/src/util/Format.js +551 -0
  135. data/app/assets/javascripts/extjs-rails/src/core/src/util/TaskManager.js +417 -0
  136. data/app/assets/javascripts/extjs-rails/src/core/src/version/Version.js +364 -0
  137. data/app/assets/javascripts/extjs-rails/src/core/test/unit/README.MD +91 -0
  138. data/app/assets/javascripts/extjs-rails/src/core/test/unit/bootstrap.js +39 -0
  139. data/app/assets/javascripts/extjs-rails/src/core/test/unit/build/build-data.js +34 -0
  140. data/app/assets/javascripts/extjs-rails/src/core/test/unit/build/build.sh +2 -0
  141. data/app/assets/javascripts/extjs-rails/src/core/test/unit/data.js +27 -0
  142. data/app/assets/javascripts/extjs-rails/src/core/test/unit/index.html +15 -0
  143. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom.html +40 -0
  144. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/extjs-api.js +12 -0
  145. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/platform-api.js +134 -0
  146. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/sanity.js +4 -0
  147. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/touch-api-out.js +128 -0
  148. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/touch-api.js +89 -0
  149. data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/env/Environment.js +357 -0
  150. data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/APITest.js +37 -0
  151. data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/jsb3.js +14 -0
  152. data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/test-setup.js +137 -0
  153. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/EventManager.js +629 -0
  154. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext-mess.backup +198 -0
  155. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext-more.js +520 -0
  156. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext.js +1550 -0
  157. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Support.js +250 -0
  158. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/Base.js +47 -0
  159. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/Class.js +561 -0
  160. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/ClassManager.js +555 -0
  161. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/CompositeElementLite.js +409 -0
  162. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/DomHelper.js +444 -0
  163. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.insertion.js +342 -0
  164. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.js +731 -0
  165. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.static.js +201 -0
  166. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.style.js +118 -0
  167. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.traversal.js +336 -0
  168. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Array.js +1229 -0
  169. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Date.js +697 -0
  170. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Error.js +277 -0
  171. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Function.js +536 -0
  172. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Number.js +323 -0
  173. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Object.js +591 -0
  174. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/String.js +451 -0
  175. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/misc/JSON.js +252 -0
  176. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/util/Format.js +521 -0
  177. data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/version/Version.js +148 -0
  178. data/app/assets/javascripts/extjs-rails/src/core/test/unit/specs.html +19 -0
  179. data/app/assets/javascripts/extjs-rails/src/data/AbstractStore.js +887 -0
  180. data/app/assets/javascripts/extjs-rails/src/data/ArrayStore.js +74 -0
  181. data/app/assets/javascripts/extjs-rails/src/data/Batch.js +236 -0
  182. data/app/assets/javascripts/extjs-rails/src/data/BufferStore.js +13 -0
  183. data/app/assets/javascripts/extjs-rails/src/data/Connection.js +969 -0
  184. data/app/assets/javascripts/extjs-rails/src/data/DirectStore.js +50 -0
  185. data/app/assets/javascripts/extjs-rails/src/data/Errors.js +52 -0
  186. data/app/assets/javascripts/extjs-rails/src/data/Field.js +341 -0
  187. data/app/assets/javascripts/extjs-rails/src/data/IdGenerator.js +198 -0
  188. data/app/assets/javascripts/extjs-rails/src/data/JsonP.js +253 -0
  189. data/app/assets/javascripts/extjs-rails/src/data/JsonPStore.js +51 -0
  190. data/app/assets/javascripts/extjs-rails/src/data/JsonStore.js +60 -0
  191. data/app/assets/javascripts/extjs-rails/src/data/Model.js +1673 -0
  192. data/app/assets/javascripts/extjs-rails/src/data/NodeInterface.js +1294 -0
  193. data/app/assets/javascripts/extjs-rails/src/data/NodeStore.js +254 -0
  194. data/app/assets/javascripts/extjs-rails/src/data/Operation.js +331 -0
  195. data/app/assets/javascripts/extjs-rails/src/data/Request.js +40 -0
  196. data/app/assets/javascripts/extjs-rails/src/data/ResultSet.js +56 -0
  197. data/app/assets/javascripts/extjs-rails/src/data/SequentialIdGenerator.js +61 -0
  198. data/app/assets/javascripts/extjs-rails/src/data/SortTypes.js +125 -0
  199. data/app/assets/javascripts/extjs-rails/src/data/Store.js +2609 -0
  200. data/app/assets/javascripts/extjs-rails/src/data/StoreManager.js +156 -0
  201. data/app/assets/javascripts/extjs-rails/src/data/Tree.js +290 -0
  202. data/app/assets/javascripts/extjs-rails/src/data/TreeStore.js +655 -0
  203. data/app/assets/javascripts/extjs-rails/src/data/Types.js +190 -0
  204. data/app/assets/javascripts/extjs-rails/src/data/UuidGenerator.js +215 -0
  205. data/app/assets/javascripts/extjs-rails/src/data/XmlStore.js +76 -0
  206. data/app/assets/javascripts/extjs-rails/src/data/association/Association.js +243 -0
  207. data/app/assets/javascripts/extjs-rails/src/data/association/BelongsTo.js +291 -0
  208. data/app/assets/javascripts/extjs-rails/src/data/association/HasMany.js +289 -0
  209. data/app/assets/javascripts/extjs-rails/src/data/association/HasOne.js +304 -0
  210. data/app/assets/javascripts/extjs-rails/src/data/proxy/Ajax.js +282 -0
  211. data/app/assets/javascripts/extjs-rails/src/data/proxy/Client.js +21 -0
  212. data/app/assets/javascripts/extjs-rails/src/data/proxy/Direct.js +181 -0
  213. data/app/assets/javascripts/extjs-rails/src/data/proxy/JsonP.js +313 -0
  214. data/app/assets/javascripts/extjs-rails/src/data/proxy/LocalStorage.js +69 -0
  215. data/app/assets/javascripts/extjs-rails/src/data/proxy/Memory.js +156 -0
  216. data/app/assets/javascripts/extjs-rails/src/data/proxy/Proxy.js +433 -0
  217. data/app/assets/javascripts/extjs-rails/src/data/proxy/Rest.js +173 -0
  218. data/app/assets/javascripts/extjs-rails/src/data/proxy/Server.js +460 -0
  219. data/app/assets/javascripts/extjs-rails/src/data/proxy/SessionStorage.js +39 -0
  220. data/app/assets/javascripts/extjs-rails/src/data/proxy/WebStorage.js +546 -0
  221. data/app/assets/javascripts/extjs-rails/src/data/reader/Array.js +68 -0
  222. data/app/assets/javascripts/extjs-rails/src/data/reader/Json.js +383 -0
  223. data/app/assets/javascripts/extjs-rails/src/data/reader/Reader.js +735 -0
  224. data/app/assets/javascripts/extjs-rails/src/data/reader/Xml.js +292 -0
  225. data/app/assets/javascripts/extjs-rails/src/data/validations.js +149 -0
  226. data/app/assets/javascripts/extjs-rails/src/data/writer/Json.js +81 -0
  227. data/app/assets/javascripts/extjs-rails/src/data/writer/Writer.js +147 -0
  228. data/app/assets/javascripts/extjs-rails/src/data/writer/Xml.js +88 -0
  229. data/app/assets/javascripts/extjs-rails/src/dd/DD.js +300 -0
  230. data/app/assets/javascripts/extjs-rails/src/dd/DDProxy.js +204 -0
  231. data/app/assets/javascripts/extjs-rails/src/dd/DDTarget.js +171 -0
  232. data/app/assets/javascripts/extjs-rails/src/dd/DragDrop.js +1101 -0
  233. data/app/assets/javascripts/extjs-rails/src/dd/DragDropManager.js +1264 -0
  234. data/app/assets/javascripts/extjs-rails/src/dd/DragSource.js +392 -0
  235. data/app/assets/javascripts/extjs-rails/src/dd/DragTracker.js +562 -0
  236. data/app/assets/javascripts/extjs-rails/src/dd/DragZone.js +137 -0
  237. data/app/assets/javascripts/extjs-rails/src/dd/DropTarget.js +118 -0
  238. data/app/assets/javascripts/extjs-rails/src/dd/DropZone.js +254 -0
  239. data/app/assets/javascripts/extjs-rails/src/dd/Registry.js +117 -0
  240. data/app/assets/javascripts/extjs-rails/src/dd/ScrollManager.js +218 -0
  241. data/app/assets/javascripts/extjs-rails/src/dd/StatusProxy.js +179 -0
  242. data/app/assets/javascripts/extjs-rails/src/diag/layout/Context.js +523 -0
  243. data/app/assets/javascripts/extjs-rails/src/diag/layout/ContextItem.js +179 -0
  244. data/app/assets/javascripts/extjs-rails/src/direct/Event.js +35 -0
  245. data/app/assets/javascripts/extjs-rails/src/direct/ExceptionEvent.js +16 -0
  246. data/app/assets/javascripts/extjs-rails/src/direct/JsonProvider.js +82 -0
  247. data/app/assets/javascripts/extjs-rails/src/direct/Manager.js +263 -0
  248. data/app/assets/javascripts/extjs-rails/src/direct/PollingProvider.js +156 -0
  249. data/app/assets/javascripts/extjs-rails/src/direct/Provider.js +96 -0
  250. data/app/assets/javascripts/extjs-rails/src/direct/RemotingEvent.js +24 -0
  251. data/app/assets/javascripts/extjs-rails/src/direct/RemotingMethod.js +100 -0
  252. data/app/assets/javascripts/extjs-rails/src/direct/RemotingProvider.js +510 -0
  253. data/app/assets/javascripts/extjs-rails/src/direct/Transaction.js +41 -0
  254. data/app/assets/javascripts/extjs-rails/src/dom/Element.alignment.js +378 -0
  255. data/app/assets/javascripts/extjs-rails/src/dom/Element.anim.js +962 -0
  256. data/app/assets/javascripts/extjs-rails/src/dom/Element.dd.js +40 -0
  257. data/app/assets/javascripts/extjs-rails/src/dom/Element.fx.js +194 -0
  258. data/app/assets/javascripts/extjs-rails/src/dom/Element.js +1407 -0
  259. data/app/assets/javascripts/extjs-rails/src/dom/Element.position.js +501 -0
  260. data/app/assets/javascripts/extjs-rails/src/dom/Element.scroll.js +214 -0
  261. data/app/assets/javascripts/extjs-rails/src/dom/Element.style.js +792 -0
  262. data/app/assets/javascripts/extjs-rails/src/dom/Element.traversal.js +8 -0
  263. data/app/assets/javascripts/extjs-rails/src/dom/Helper.js +466 -0
  264. data/app/assets/javascripts/extjs-rails/src/dom/Query.js +1067 -0
  265. data/app/assets/javascripts/extjs-rails/src/draw/Color.js +303 -0
  266. data/app/assets/javascripts/extjs-rails/src/draw/Component.js +245 -0
  267. data/app/assets/javascripts/extjs-rails/src/draw/CompositeSprite.js +299 -0
  268. data/app/assets/javascripts/extjs-rails/src/draw/Draw.js +1217 -0
  269. data/app/assets/javascripts/extjs-rails/src/draw/Matrix.js +183 -0
  270. data/app/assets/javascripts/extjs-rails/src/draw/Sprite.js +554 -0
  271. data/app/assets/javascripts/extjs-rails/src/draw/SpriteDD.js +87 -0
  272. data/app/assets/javascripts/extjs-rails/src/draw/Surface.js +1001 -0
  273. data/app/assets/javascripts/extjs-rails/src/draw/Text.js +175 -0
  274. data/app/assets/javascripts/extjs-rails/src/draw/engine/ImageExporter.js +106 -0
  275. data/app/assets/javascripts/extjs-rails/src/draw/engine/Svg.js +734 -0
  276. data/app/assets/javascripts/extjs-rails/src/draw/engine/SvgExporter.js +280 -0
  277. data/app/assets/javascripts/extjs-rails/src/draw/engine/Vml.js +916 -0
  278. data/app/assets/javascripts/extjs-rails/src/flash/Component.js +248 -0
  279. data/app/assets/javascripts/extjs-rails/src/form/Basic.js +1018 -0
  280. data/app/assets/javascripts/extjs-rails/src/form/CheckboxGroup.js +441 -0
  281. data/app/assets/javascripts/extjs-rails/src/form/CheckboxManager.js +26 -0
  282. data/app/assets/javascripts/extjs-rails/src/form/FieldAncestor.js +210 -0
  283. data/app/assets/javascripts/extjs-rails/src/form/FieldContainer.js +290 -0
  284. data/app/assets/javascripts/extjs-rails/src/form/FieldSet.js +506 -0
  285. data/app/assets/javascripts/extjs-rails/src/form/Label.js +110 -0
  286. data/app/assets/javascripts/extjs-rails/src/form/Labelable.js +764 -0
  287. data/app/assets/javascripts/extjs-rails/src/form/Panel.js +335 -0
  288. data/app/assets/javascripts/extjs-rails/src/form/RadioGroup.js +124 -0
  289. data/app/assets/javascripts/extjs-rails/src/form/RadioManager.js +26 -0
  290. data/app/assets/javascripts/extjs-rails/src/form/action/Action.js +307 -0
  291. data/app/assets/javascripts/extjs-rails/src/form/action/DirectLoad.js +107 -0
  292. data/app/assets/javascripts/extjs-rails/src/form/action/DirectSubmit.js +119 -0
  293. data/app/assets/javascripts/extjs-rails/src/form/action/Load.js +120 -0
  294. data/app/assets/javascripts/extjs-rails/src/form/action/StandardSubmit.js +34 -0
  295. data/app/assets/javascripts/extjs-rails/src/form/action/Submit.js +257 -0
  296. data/app/assets/javascripts/extjs-rails/src/form/field/Base.js +813 -0
  297. data/app/assets/javascripts/extjs-rails/src/form/field/Checkbox.js +505 -0
  298. data/app/assets/javascripts/extjs-rails/src/form/field/ComboBox.js +1427 -0
  299. data/app/assets/javascripts/extjs-rails/src/form/field/Date.js +578 -0
  300. data/app/assets/javascripts/extjs-rails/src/form/field/Display.js +155 -0
  301. data/app/assets/javascripts/extjs-rails/src/form/field/Field.js +430 -0
  302. data/app/assets/javascripts/extjs-rails/src/form/field/File.js +265 -0
  303. data/app/assets/javascripts/extjs-rails/src/form/field/Hidden.js +75 -0
  304. data/app/assets/javascripts/extjs-rails/src/form/field/HtmlEditor.js +1439 -0
  305. data/app/assets/javascripts/extjs-rails/src/form/field/Number.js +380 -0
  306. data/app/assets/javascripts/extjs-rails/src/form/field/Picker.js +321 -0
  307. data/app/assets/javascripts/extjs-rails/src/form/field/Radio.js +279 -0
  308. data/app/assets/javascripts/extjs-rails/src/form/field/Spinner.js +321 -0
  309. data/app/assets/javascripts/extjs-rails/src/form/field/Text.js +727 -0
  310. data/app/assets/javascripts/extjs-rails/src/form/field/TextArea.js +228 -0
  311. data/app/assets/javascripts/extjs-rails/src/form/field/Time.js +459 -0
  312. data/app/assets/javascripts/extjs-rails/src/form/field/Trigger.js +469 -0
  313. data/app/assets/javascripts/extjs-rails/src/form/field/VTypes.js +172 -0
  314. data/app/assets/javascripts/extjs-rails/src/fx/Anim.js +472 -0
  315. data/app/assets/javascripts/extjs-rails/src/fx/Animator.js +410 -0
  316. data/app/assets/javascripts/extjs-rails/src/fx/CubicBezier.js +77 -0
  317. data/app/assets/javascripts/extjs-rails/src/fx/Easing.js +136 -0
  318. data/app/assets/javascripts/extjs-rails/src/fx/Manager.js +353 -0
  319. data/app/assets/javascripts/extjs-rails/src/fx/PropertyHandler.js +381 -0
  320. data/app/assets/javascripts/extjs-rails/src/fx/Queue.js +123 -0
  321. data/app/assets/javascripts/extjs-rails/src/fx/target/Component.js +118 -0
  322. data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeElement.js +46 -0
  323. data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeElementCSS.js +22 -0
  324. data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeSprite.js +34 -0
  325. data/app/assets/javascripts/extjs-rails/src/fx/target/Element.js +83 -0
  326. data/app/assets/javascripts/extjs-rails/src/fx/target/ElementCSS.js +77 -0
  327. data/app/assets/javascripts/extjs-rails/src/fx/target/Sprite.js +128 -0
  328. data/app/assets/javascripts/extjs-rails/src/fx/target/Target.js +36 -0
  329. data/app/assets/javascripts/extjs-rails/src/grid/CellEditor.js +172 -0
  330. data/app/assets/javascripts/extjs-rails/src/grid/ColumnComponentLayout.js +34 -0
  331. data/app/assets/javascripts/extjs-rails/src/grid/ColumnLayout.js +201 -0
  332. data/app/assets/javascripts/extjs-rails/src/grid/Lockable.js +863 -0
  333. data/app/assets/javascripts/extjs-rails/src/grid/LockingView.js +169 -0
  334. data/app/assets/javascripts/extjs-rails/src/grid/PagingScroller.js +539 -0
  335. data/app/assets/javascripts/extjs-rails/src/grid/Panel.js +393 -0
  336. data/app/assets/javascripts/extjs-rails/src/grid/RowEditor.js +731 -0
  337. data/app/assets/javascripts/extjs-rails/src/grid/RowNumberer.js +76 -0
  338. data/app/assets/javascripts/extjs-rails/src/grid/Scroller.js +5 -0
  339. data/app/assets/javascripts/extjs-rails/src/grid/View.js +44 -0
  340. data/app/assets/javascripts/extjs-rails/src/grid/ViewDropZone.js +41 -0
  341. data/app/assets/javascripts/extjs-rails/src/grid/column/Action.js +318 -0
  342. data/app/assets/javascripts/extjs-rails/src/grid/column/Boolean.js +82 -0
  343. data/app/assets/javascripts/extjs-rails/src/grid/column/Column.js +835 -0
  344. data/app/assets/javascripts/extjs-rails/src/grid/column/Date.js +63 -0
  345. data/app/assets/javascripts/extjs-rails/src/grid/column/Number.js +52 -0
  346. data/app/assets/javascripts/extjs-rails/src/grid/column/Template.js +58 -0
  347. data/app/assets/javascripts/extjs-rails/src/grid/feature/AbstractSummary.js +154 -0
  348. data/app/assets/javascripts/extjs-rails/src/grid/feature/Chunking.js +77 -0
  349. data/app/assets/javascripts/extjs-rails/src/grid/feature/Feature.js +158 -0
  350. data/app/assets/javascripts/extjs-rails/src/grid/feature/Grouping.js +822 -0
  351. data/app/assets/javascripts/extjs-rails/src/grid/feature/GroupingSummary.js +243 -0
  352. data/app/assets/javascripts/extjs-rails/src/grid/feature/RowBody.js +116 -0
  353. data/app/assets/javascripts/extjs-rails/src/grid/feature/RowWrap.js +120 -0
  354. data/app/assets/javascripts/extjs-rails/src/grid/feature/Summary.js +167 -0
  355. data/app/assets/javascripts/extjs-rails/src/grid/header/Container.js +965 -0
  356. data/app/assets/javascripts/extjs-rails/src/grid/header/DragZone.js +69 -0
  357. data/app/assets/javascripts/extjs-rails/src/grid/header/DropZone.js +265 -0
  358. data/app/assets/javascripts/extjs-rails/src/grid/plugin/CellEditing.js +453 -0
  359. data/app/assets/javascripts/extjs-rails/src/grid/plugin/DragDrop.js +254 -0
  360. data/app/assets/javascripts/extjs-rails/src/grid/plugin/Editing.js +561 -0
  361. data/app/assets/javascripts/extjs-rails/src/grid/plugin/HeaderReorderer.js +49 -0
  362. data/app/assets/javascripts/extjs-rails/src/grid/plugin/HeaderResizer.js +292 -0
  363. data/app/assets/javascripts/extjs-rails/src/grid/plugin/RowEditing.js +339 -0
  364. data/app/assets/javascripts/extjs-rails/src/grid/property/Grid.js +351 -0
  365. data/app/assets/javascripts/extjs-rails/src/grid/property/HeaderContainer.js +109 -0
  366. data/app/assets/javascripts/extjs-rails/src/grid/property/Property.js +36 -0
  367. data/app/assets/javascripts/extjs-rails/src/grid/property/Store.js +141 -0
  368. data/app/assets/javascripts/extjs-rails/src/layout/ClassList.js +90 -0
  369. data/app/assets/javascripts/extjs-rails/src/layout/Context.js +1232 -0
  370. data/app/assets/javascripts/extjs-rails/src/layout/ContextItem.js +1470 -0
  371. data/app/assets/javascripts/extjs-rails/src/layout/Layout.js +761 -0
  372. data/app/assets/javascripts/extjs-rails/src/layout/component/Auto.js +220 -0
  373. data/app/assets/javascripts/extjs-rails/src/layout/component/Body.js +80 -0
  374. data/app/assets/javascripts/extjs-rails/src/layout/component/BoundList.js +95 -0
  375. data/app/assets/javascripts/extjs-rails/src/layout/component/Button.js +261 -0
  376. data/app/assets/javascripts/extjs-rails/src/layout/component/Component.js +427 -0
  377. data/app/assets/javascripts/extjs-rails/src/layout/component/Dock.js +1132 -0
  378. data/app/assets/javascripts/extjs-rails/src/layout/component/Draw.js +79 -0
  379. data/app/assets/javascripts/extjs-rails/src/layout/component/FieldSet.js +62 -0
  380. data/app/assets/javascripts/extjs-rails/src/layout/component/ProgressBar.js +54 -0
  381. data/app/assets/javascripts/extjs-rails/src/layout/component/Tab.js +23 -0
  382. data/app/assets/javascripts/extjs-rails/src/layout/component/field/ComboBox.js +52 -0
  383. data/app/assets/javascripts/extjs-rails/src/layout/component/field/Field.js +372 -0
  384. data/app/assets/javascripts/extjs-rails/src/layout/component/field/FieldContainer.js +48 -0
  385. data/app/assets/javascripts/extjs-rails/src/layout/component/field/HtmlEditor.js +54 -0
  386. data/app/assets/javascripts/extjs-rails/src/layout/component/field/Slider.js +58 -0
  387. data/app/assets/javascripts/extjs-rails/src/layout/component/field/Text.js +75 -0
  388. data/app/assets/javascripts/extjs-rails/src/layout/component/field/TextArea.js +51 -0
  389. data/app/assets/javascripts/extjs-rails/src/layout/component/field/Trigger.js +132 -0
  390. data/app/assets/javascripts/extjs-rails/src/layout/container/Absolute.js +121 -0
  391. data/app/assets/javascripts/extjs-rails/src/layout/container/Accordion.js +308 -0
  392. data/app/assets/javascripts/extjs-rails/src/layout/container/Anchor.js +403 -0
  393. data/app/assets/javascripts/extjs-rails/src/layout/container/Auto.js +70 -0
  394. data/app/assets/javascripts/extjs-rails/src/layout/container/Border-old-js +1079 -0
  395. data/app/assets/javascripts/extjs-rails/src/layout/container/Border.js +816 -0
  396. data/app/assets/javascripts/extjs-rails/src/layout/container/Box.js +929 -0
  397. data/app/assets/javascripts/extjs-rails/src/layout/container/Card.js +361 -0
  398. data/app/assets/javascripts/extjs-rails/src/layout/container/CheckboxGroup.js +376 -0
  399. data/app/assets/javascripts/extjs-rails/src/layout/container/Column.js +234 -0
  400. data/app/assets/javascripts/extjs-rails/src/layout/container/Container.js +961 -0
  401. data/app/assets/javascripts/extjs-rails/src/layout/container/Editor.js +74 -0
  402. data/app/assets/javascripts/extjs-rails/src/layout/container/Fit.js +287 -0
  403. data/app/assets/javascripts/extjs-rails/src/layout/container/Form.js +157 -0
  404. data/app/assets/javascripts/extjs-rails/src/layout/container/HBox.js +134 -0
  405. data/app/assets/javascripts/extjs-rails/src/layout/container/Table.js +412 -0
  406. data/app/assets/javascripts/extjs-rails/src/layout/container/VBox.js +139 -0
  407. data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/Menu.js +365 -0
  408. data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/None.js +83 -0
  409. data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/Scroller.js +475 -0
  410. data/app/assets/javascripts/extjs-rails/src/menu/CheckItem.js +169 -0
  411. data/app/assets/javascripts/extjs-rails/src/menu/ColorPicker.js +110 -0
  412. data/app/assets/javascripts/extjs-rails/src/menu/DatePicker.js +100 -0
  413. data/app/assets/javascripts/extjs-rails/src/menu/Item.js +553 -0
  414. data/app/assets/javascripts/extjs-rails/src/menu/KeyNav.js +134 -0
  415. data/app/assets/javascripts/extjs-rails/src/menu/Manager.js +219 -0
  416. data/app/assets/javascripts/extjs-rails/src/menu/Menu.js +579 -0
  417. data/app/assets/javascripts/extjs-rails/src/menu/Separator.js +126 -0
  418. data/app/assets/javascripts/extjs-rails/src/panel/AbstractPanel.js +323 -0
  419. data/app/assets/javascripts/extjs-rails/src/panel/DD.js +99 -0
  420. data/app/assets/javascripts/extjs-rails/src/panel/Header.js +518 -0
  421. data/app/assets/javascripts/extjs-rails/src/panel/Panel.js +2150 -0
  422. data/app/assets/javascripts/extjs-rails/src/panel/Proxy.js +131 -0
  423. data/app/assets/javascripts/extjs-rails/src/panel/Table.js +1018 -0
  424. data/app/assets/javascripts/extjs-rails/src/panel/Tool.js +304 -0
  425. data/app/assets/javascripts/extjs-rails/src/picker/Color.js +219 -0
  426. data/app/assets/javascripts/extjs-rails/src/picker/Date.js +1140 -0
  427. data/app/assets/javascripts/extjs-rails/src/picker/Month.js +490 -0
  428. data/app/assets/javascripts/extjs-rails/src/picker/Time.js +165 -0
  429. data/app/assets/javascripts/extjs-rails/src/resizer/BorderSplitter.js +22 -0
  430. data/app/assets/javascripts/extjs-rails/src/resizer/BorderSplitterTracker.js +210 -0
  431. data/app/assets/javascripts/extjs-rails/src/resizer/Handle.js +29 -0
  432. data/app/assets/javascripts/extjs-rails/src/resizer/ResizeTracker.js +346 -0
  433. data/app/assets/javascripts/extjs-rails/src/resizer/Resizer.js +477 -0
  434. data/app/assets/javascripts/extjs-rails/src/resizer/Splitter.js +242 -0
  435. data/app/assets/javascripts/extjs-rails/src/resizer/SplitterTracker.js +230 -0
  436. data/app/assets/javascripts/extjs-rails/src/selection/CellModel.js +395 -0
  437. data/app/assets/javascripts/extjs-rails/src/selection/CheckboxModel.js +234 -0
  438. data/app/assets/javascripts/extjs-rails/src/selection/DataViewModel.js +160 -0
  439. data/app/assets/javascripts/extjs-rails/src/selection/Model.js +646 -0
  440. data/app/assets/javascripts/extjs-rails/src/selection/RowModel.js +499 -0
  441. data/app/assets/javascripts/extjs-rails/src/selection/TreeModel.js +78 -0
  442. data/app/assets/javascripts/extjs-rails/src/slider/Multi.js +835 -0
  443. data/app/assets/javascripts/extjs-rails/src/slider/Single.js +56 -0
  444. data/app/assets/javascripts/extjs-rails/src/slider/Thumb.js +259 -0
  445. data/app/assets/javascripts/extjs-rails/src/slider/Tip.js +130 -0
  446. data/app/assets/javascripts/extjs-rails/src/state/CookieProvider.js +120 -0
  447. data/app/assets/javascripts/extjs-rails/src/state/LocalStorageProvider.js +72 -0
  448. data/app/assets/javascripts/extjs-rails/src/state/Manager.js +70 -0
  449. data/app/assets/javascripts/extjs-rails/src/state/Provider.js +182 -0
  450. data/app/assets/javascripts/extjs-rails/src/state/Stateful.js +364 -0
  451. data/app/assets/javascripts/extjs-rails/src/tab/Bar.js +258 -0
  452. data/app/assets/javascripts/extjs-rails/src/tab/Panel.js +654 -0
  453. data/app/assets/javascripts/extjs-rails/src/tab/Tab.js +358 -0
  454. data/app/assets/javascripts/extjs-rails/src/tail.js +10 -0
  455. data/app/assets/javascripts/extjs-rails/src/tip/QuickTip.js +335 -0
  456. data/app/assets/javascripts/extjs-rails/src/tip/QuickTipManager.js +239 -0
  457. data/app/assets/javascripts/extjs-rails/src/tip/Tip.js +160 -0
  458. data/app/assets/javascripts/extjs-rails/src/tip/ToolTip.js +691 -0
  459. data/app/assets/javascripts/extjs-rails/src/toolbar/Fill.js +28 -0
  460. data/app/assets/javascripts/extjs-rails/src/toolbar/Item.js +16 -0
  461. data/app/assets/javascripts/extjs-rails/src/toolbar/Paging.js +600 -0
  462. data/app/assets/javascripts/extjs-rails/src/toolbar/Separator.js +23 -0
  463. data/app/assets/javascripts/extjs-rails/src/toolbar/Spacer.js +33 -0
  464. data/app/assets/javascripts/extjs-rails/src/toolbar/TextItem.js +57 -0
  465. data/app/assets/javascripts/extjs-rails/src/toolbar/Toolbar-legacy.js +123 -0
  466. data/app/assets/javascripts/extjs-rails/src/toolbar/Toolbar.js +447 -0
  467. data/app/assets/javascripts/extjs-rails/src/tree/Column.js +90 -0
  468. data/app/assets/javascripts/extjs-rails/src/tree/Panel.js +505 -0
  469. data/app/assets/javascripts/extjs-rails/src/tree/View.js +658 -0
  470. data/app/assets/javascripts/extjs-rails/src/tree/ViewDragZone.js +49 -0
  471. data/app/assets/javascripts/extjs-rails/src/tree/ViewDropZone.js +287 -0
  472. data/app/assets/javascripts/extjs-rails/src/tree/plugin/TreeViewDragDrop.js +244 -0
  473. data/app/assets/javascripts/extjs-rails/src/util/AbstractMixedCollection.js +772 -0
  474. data/app/assets/javascripts/extjs-rails/src/util/Animate.js +426 -0
  475. data/app/assets/javascripts/extjs-rails/src/util/Bindable.js +102 -0
  476. data/app/assets/javascripts/extjs-rails/src/util/CSS.js +185 -0
  477. data/app/assets/javascripts/extjs-rails/src/util/ClickRepeater.js +238 -0
  478. data/app/assets/javascripts/extjs-rails/src/util/ComponentDragger.js +126 -0
  479. data/app/assets/javascripts/extjs-rails/src/util/Cookies.js +91 -0
  480. data/app/assets/javascripts/extjs-rails/src/util/ElementContainer.js +293 -0
  481. data/app/assets/javascripts/extjs-rails/src/util/Filter.js +159 -0
  482. data/app/assets/javascripts/extjs-rails/src/util/Floating.js +321 -0
  483. data/app/assets/javascripts/extjs-rails/src/util/Grouper.js +26 -0
  484. data/app/assets/javascripts/extjs-rails/src/util/HashMap.js +356 -0
  485. data/app/assets/javascripts/extjs-rails/src/util/History.js +285 -0
  486. data/app/assets/javascripts/extjs-rails/src/util/Inflector.js +297 -0
  487. data/app/assets/javascripts/extjs-rails/src/util/KeyMap.js +427 -0
  488. data/app/assets/javascripts/extjs-rails/src/util/KeyNav.js +239 -0
  489. data/app/assets/javascripts/extjs-rails/src/util/LruCache.js +257 -0
  490. data/app/assets/javascripts/extjs-rails/src/util/Memento.js +131 -0
  491. data/app/assets/javascripts/extjs-rails/src/util/MixedCollection.js +239 -0
  492. data/app/assets/javascripts/extjs-rails/src/util/Observable.js +1003 -0
  493. data/app/assets/javascripts/extjs-rails/src/util/Offset.js +60 -0
  494. data/app/assets/javascripts/extjs-rails/src/util/Point.js +93 -0
  495. data/app/assets/javascripts/extjs-rails/src/util/ProtoElement.js +205 -0
  496. data/app/assets/javascripts/extjs-rails/src/util/Queue.js +76 -0
  497. data/app/assets/javascripts/extjs-rails/src/util/Region.js +388 -0
  498. data/app/assets/javascripts/extjs-rails/src/util/Renderable.js +1079 -0
  499. data/app/assets/javascripts/extjs-rails/src/util/Sortable.js +248 -0
  500. data/app/assets/javascripts/extjs-rails/src/util/Sorter.js +179 -0
  501. data/app/assets/javascripts/extjs-rails/src/util/TextMetrics.js +148 -0
  502. data/app/assets/javascripts/extjs-rails/src/view/AbstractView.js +1103 -0
  503. data/app/assets/javascripts/extjs-rails/src/view/BoundList.js +207 -0
  504. data/app/assets/javascripts/extjs-rails/src/view/BoundListKeyNav.js +92 -0
  505. data/app/assets/javascripts/extjs-rails/src/view/DragZone.js +106 -0
  506. data/app/assets/javascripts/extjs-rails/src/view/DropZone.js +240 -0
  507. data/app/assets/javascripts/extjs-rails/src/view/Table.js +1229 -0
  508. data/app/assets/javascripts/extjs-rails/src/view/TableChunker.js +139 -0
  509. data/app/assets/javascripts/extjs-rails/src/view/View.js +636 -0
  510. data/app/assets/javascripts/extjs-rails/src/window/MessageBox.js +880 -0
  511. data/app/assets/javascripts/extjs-rails/src/window/Window-legacy.js +56 -0
  512. data/app/assets/javascripts/extjs-rails/src/window/Window.js +793 -0
  513. data/extjs-rails.gemspec +24 -0
  514. data/lib/extjs-rails.rb +7 -0
  515. data/lib/extjs-rails/engine.rb +7 -0
  516. data/lib/extjs-rails/version.rb +5 -0
  517. metadata +660 -0
@@ -0,0 +1,321 @@
1
+ /**
2
+ * A mixin to add floating capability to a Component.
3
+ */
4
+ Ext.define('Ext.util.Floating', {
5
+
6
+ uses: ['Ext.Layer', 'Ext.window.Window'],
7
+
8
+ /**
9
+ * @cfg {Boolean} focusOnToFront
10
+ * Specifies whether the floated component should be automatically {@link Ext.Component#method-focus focused} when
11
+ * it is {@link #toFront brought to the front}.
12
+ */
13
+ focusOnToFront: true,
14
+
15
+ /**
16
+ * @cfg {String/Boolean} shadow
17
+ * Specifies whether the floating component should be given a shadow. Set to true to automatically create an
18
+ * {@link Ext.Shadow}, or a string indicating the shadow's display {@link Ext.Shadow#mode}. Set to false to
19
+ * disable the shadow.
20
+ */
21
+ shadow: 'sides',
22
+
23
+ /**
24
+ * @cfg {String/Boolean} shadowOffset
25
+ * Number of pixels to offset the shadow.
26
+ */
27
+
28
+ constructor: function (dom) {
29
+ var me = this;
30
+
31
+ me.el = new Ext.Layer(Ext.apply({
32
+ hideMode : me.hideMode,
33
+ hidden : me.hidden,
34
+ shadow : (typeof me.shadow != 'undefined') ? me.shadow : 'sides',
35
+ shadowOffset : me.shadowOffset,
36
+ constrain : false,
37
+ shim : (me.shim === false) ? false : undefined
38
+ }, me.floating), dom);
39
+
40
+ // release config object (if it was one)
41
+ me.floating = true;
42
+
43
+ // Register with the configured ownerCt.
44
+ // With this we acquire a floatParent for relative positioning, and a zIndexParent which is an
45
+ // ancestor floater which provides zIndex management.
46
+ me.registerWithOwnerCt();
47
+ },
48
+
49
+ registerWithOwnerCt: function() {
50
+ var me = this;
51
+
52
+ if (me.zIndexParent) {
53
+ me.zIndexParent.unregisterFloatingItem(me);
54
+ }
55
+
56
+ // Acquire a zIndexParent by traversing the ownerCt axis for the nearest floating ancestor
57
+ me.zIndexParent = me.up('[floating]');
58
+ me.setFloatParent(me.ownerCt);
59
+ delete me.ownerCt;
60
+
61
+ if (me.zIndexParent) {
62
+ me.zIndexParent.registerFloatingItem(me);
63
+ } else {
64
+ Ext.WindowManager.register(me);
65
+ }
66
+ },
67
+
68
+ setFloatParent: function(floatParent) {
69
+ var me = this;
70
+
71
+ // Remove listeners from previous floatParent
72
+ if (me.floatParent) {
73
+ me.mun(me.floatParent, {
74
+ hide: me.onFloatParentHide,
75
+ show: me.onFloatParentShow,
76
+ scope: me
77
+ });
78
+ }
79
+
80
+ me.floatParent = floatParent;
81
+
82
+ // Floating Components as children of Containers must hide when their parent hides.
83
+ if (floatParent) {
84
+ me.mon(me.floatParent, {
85
+ hide: me.onFloatParentHide,
86
+ show: me.onFloatParentShow,
87
+ scope: me
88
+ });
89
+ }
90
+
91
+ // If a floating Component is configured to be constrained, but has no configured
92
+ // constrainTo setting, set its constrainTo to be it's ownerCt before rendering.
93
+ if ((me.constrain || me.constrainHeader) && !me.constrainTo) {
94
+ me.constrainTo = floatParent ? floatParent.getTargetEl() : me.container;
95
+ }
96
+ },
97
+
98
+ onAfterFloatLayout: function(){
99
+ this.syncShadow();
100
+ },
101
+
102
+ onFloatParentHide: function() {
103
+ var me = this;
104
+
105
+ if (me.hideOnParentHide !== false && me.isVisible()) {
106
+ me.hide();
107
+ me.showOnParentShow = true;
108
+ }
109
+ },
110
+
111
+ onFloatParentShow: function() {
112
+ if (this.showOnParentShow) {
113
+ delete this.showOnParentShow;
114
+ this.show();
115
+ }
116
+ },
117
+
118
+ // private
119
+ // z-index is managed by the zIndexManager and may be overwritten at any time.
120
+ // Returns the next z-index to be used.
121
+ // If this is a Container, then it will have rebased any managed floating Components,
122
+ // and so the next available z-index will be approximately 10000 above that.
123
+ setZIndex: function(index) {
124
+ var me = this;
125
+
126
+ me.el.setZIndex(index);
127
+
128
+ // Next item goes 10 above;
129
+ index += 10;
130
+
131
+ // When a Container with floating items has its z-index set, it rebases any floating items it is managing.
132
+ // The returned value is a round number approximately 10000 above the last z-index used.
133
+ if (me.floatingItems) {
134
+ index = Math.floor(me.floatingItems.setBase(index) / 100) * 100 + 10000;
135
+ }
136
+ return index;
137
+ },
138
+
139
+ /**
140
+ * Moves this floating Component into a constrain region.
141
+ *
142
+ * By default, this Component is constrained to be within the container it was added to, or the element it was
143
+ * rendered to.
144
+ *
145
+ * An alternative constraint may be passed.
146
+ * @param {String/HTMLElement/Ext.Element/Ext.util.Region} [constrainTo] The Element or {@link Ext.util.Region Region}
147
+ * into which this Component is to be constrained. Defaults to the element into which this floating Component
148
+ * was rendered.
149
+ */
150
+ doConstrain: function(constrainTo) {
151
+ var me = this,
152
+
153
+ // Calculate the constrain vector to coerce our position to within our
154
+ // constrainTo setting. getConstrainVector will provide a default constraint
155
+ // region if there is no explicit constrainTo, *and* there is no floatParent owner Component.
156
+ vector = me.getConstrainVector(constrainTo),
157
+ xy;
158
+
159
+ if (vector) {
160
+ xy = me.getPosition();
161
+ xy[0] += vector[0];
162
+ xy[1] += vector[1];
163
+ me.setPosition(xy);
164
+ }
165
+ },
166
+
167
+
168
+ /**
169
+ * Gets the x/y offsets to constrain this float
170
+ * @private
171
+ * @param {String/HTMLElement/Ext.Element/Ext.util.Region} [constrainTo] The Element or {@link Ext.util.Region Region}
172
+ * into which this Component is to be constrained.
173
+ * @return {Number[]} The x/y constraints
174
+ */
175
+ getConstrainVector: function(constrainTo){
176
+ var me = this;
177
+
178
+ if (me.constrain || me.constrainHeader) {
179
+ constrainTo = constrainTo || (me.floatParent && me.floatParent.getTargetEl()) || me.container || me.el.getScopeParent();
180
+ return (me.constrainHeader ? me.header.el : me.el).getConstrainVector(constrainTo);
181
+ }
182
+ },
183
+
184
+ /**
185
+ * Aligns this floating Component to the specified element
186
+ *
187
+ * @param {Ext.Component/Ext.Element/HTMLElement/String} element
188
+ * The element or {@link Ext.Component} to align to. If passing a component, it must be a
189
+ * component instance. If a string id is passed, it will be used as an element id.
190
+ * @param {String} [position="tl-bl?"] The position to align to
191
+ * (see {@link Ext.Element#alignTo} for more details).
192
+ * @param {Number[]} [offsets] Offset the positioning by [x, y]
193
+ * @return {Ext.Component} this
194
+ */
195
+ alignTo: function(element, position, offsets) {
196
+
197
+ // element may be a Component, so first attempt to use its el to align to.
198
+ // When aligning to an Element's X,Y position, we must use setPagePosition which disregards any floatParent
199
+ this.setPagePosition(this.el.getAlignToXY(element.el || element, position, offsets));
200
+ return this;
201
+ },
202
+
203
+ /**
204
+ * Brings this floating Component to the front of any other visible, floating Components managed by the same
205
+ * {@link Ext.ZIndexManager ZIndexManager}
206
+ *
207
+ * If this Component is modal, inserts the modal mask just below this Component in the z-index stack.
208
+ *
209
+ * @param {Boolean} [preventFocus=false] Specify `true` to prevent the Component from being focused.
210
+ * @return {Ext.Component} this
211
+ */
212
+ toFront: function(preventFocus) {
213
+ var me = this;
214
+
215
+ // Find the floating Component which provides the base for this Component's zIndexing.
216
+ // That must move to front to then be able to rebase its zIndex stack and move this to the front
217
+ if (me.zIndexParent && me.bringParentToFront !== false) {
218
+ me.zIndexParent.toFront(true);
219
+ }
220
+
221
+ if (!Ext.isDefined(preventFocus)) {
222
+ preventFocus = !me.focusOnToFront;
223
+ }
224
+
225
+ if (preventFocus) {
226
+ me.preventFocusOnActivate = true;
227
+ }
228
+ if (me.zIndexManager.bringToFront(me)) {
229
+ if (!preventFocus) {
230
+ // Kick off a delayed focus request.
231
+ // If another floating Component is toFronted before the delay expires
232
+ // this will not receive focus.
233
+ me.focus(false, true);
234
+ }
235
+ }
236
+ delete me.preventFocusOnActivate;
237
+ return me;
238
+ },
239
+
240
+ /**
241
+ * This method is called internally by {@link Ext.ZIndexManager} to signal that a floating Component has either been
242
+ * moved to the top of its zIndex stack, or pushed from the top of its zIndex stack.
243
+ *
244
+ * If a _Window_ is superceded by another Window, deactivating it hides its shadow.
245
+ *
246
+ * This method also fires the {@link Ext.Component#activate activate} or
247
+ * {@link Ext.Component#deactivate deactivate} event depending on which action occurred.
248
+ *
249
+ * @param {Boolean} [active=false] True to activate the Component, false to deactivate it.
250
+ * @param {Ext.Component} [newActive] The newly active Component which is taking over topmost zIndex position.
251
+ */
252
+ setActive: function(active, newActive) {
253
+ var me = this;
254
+
255
+ if (active) {
256
+ if (me.el.shadow && !me.maximized) {
257
+ me.el.enableShadow(true);
258
+ }
259
+ if (me.modal && !me.preventFocusOnActivate) {
260
+ me.focus(false, true);
261
+ }
262
+ me.fireEvent('activate', me);
263
+ } else {
264
+ // Only the *Windows* in a zIndex stack share a shadow. All other types of floaters
265
+ // can keep their shadows all the time
266
+ if (me.isWindow && (newActive && newActive.isWindow)) {
267
+ me.el.disableShadow();
268
+ }
269
+ me.fireEvent('deactivate', me);
270
+ }
271
+ },
272
+
273
+ /**
274
+ * Sends this Component to the back of (lower z-index than) any other visible windows
275
+ * @return {Ext.Component} this
276
+ */
277
+ toBack: function() {
278
+ this.zIndexManager.sendToBack(this);
279
+ return this;
280
+ },
281
+
282
+ /**
283
+ * Center this Component in its container.
284
+ * @return {Ext.Component} this
285
+ */
286
+ center: function() {
287
+ var me = this,
288
+ xy;
289
+
290
+ if (me.isVisible()) {
291
+ xy = me.el.getAlignToXY(me.container, 'c-c');
292
+ me.setPagePosition(xy);
293
+ } else {
294
+ me.needsCenter = true;
295
+ }
296
+ return me;
297
+ },
298
+
299
+ onFloatShow: function(){
300
+ if (this.needsCenter) {
301
+ this.center();
302
+ }
303
+ delete this.needsCenter;
304
+ },
305
+
306
+ // private
307
+ syncShadow : function(){
308
+ if (this.floating) {
309
+ this.el.sync(true);
310
+ }
311
+ },
312
+
313
+ // private
314
+ fitContainer: function() {
315
+ var parent = this.floatParent,
316
+ container = parent ? parent.getTargetEl() : this.container,
317
+ size = container.getViewSize(false);
318
+
319
+ this.setSize(size);
320
+ }
321
+ });
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @class Ext.util.Grouper
3
+
4
+ Represents a single grouper that can be applied to a Store. The grouper works
5
+ in the same fashion as the {@link Ext.util.Sorter}.
6
+
7
+ * @markdown
8
+ */
9
+
10
+ Ext.define('Ext.util.Grouper', {
11
+
12
+ /* Begin Definitions */
13
+
14
+ extend: 'Ext.util.Sorter',
15
+
16
+ /* End Definitions */
17
+
18
+ /**
19
+ * Returns the value for grouping to be used.
20
+ * @param {Ext.data.Model} instance The Model instance
21
+ * @return {String} The group string for this model
22
+ */
23
+ getGroupString: function(instance) {
24
+ return instance.get(this.property);
25
+ }
26
+ });
@@ -0,0 +1,356 @@
1
+ /**
2
+ * @class Ext.util.HashMap
3
+ * <p>
4
+ * Represents a collection of a set of key and value pairs. Each key in the HashMap
5
+ * must be unique, the same key cannot exist twice. Access to items is provided via
6
+ * the key only. Sample usage:
7
+ * <pre><code>
8
+ var map = new Ext.util.HashMap();
9
+ map.add('key1', 1);
10
+ map.add('key2', 2);
11
+ map.add('key3', 3);
12
+
13
+ map.each(function(key, value, length){
14
+ console.log(key, value, length);
15
+ });
16
+ * </code></pre>
17
+ * </p>
18
+ *
19
+ * <p>The HashMap is an unordered class,
20
+ * there is no guarantee when iterating over the items that they will be in any particular
21
+ * order. If this is required, then use a {@link Ext.util.MixedCollection}.
22
+ * </p>
23
+ */
24
+ Ext.define('Ext.util.HashMap', {
25
+ mixins: {
26
+ observable: 'Ext.util.Observable'
27
+ },
28
+
29
+ /**
30
+ * @cfg {Function} keyFn A function that is used to retrieve a default key for a passed object.
31
+ * A default is provided that returns the <b>id</b> property on the object. This function is only used
32
+ * if the add method is called with a single argument.
33
+ */
34
+
35
+ /**
36
+ * Creates new HashMap.
37
+ * @param {Object} config (optional) Config object.
38
+ */
39
+ constructor: function(config) {
40
+ config = config || {};
41
+
42
+ var me = this,
43
+ keyFn = config.keyFn;
44
+
45
+ me.addEvents(
46
+ /**
47
+ * @event add
48
+ * Fires when a new item is added to the hash
49
+ * @param {Ext.util.HashMap} this.
50
+ * @param {String} key The key of the added item.
51
+ * @param {Object} value The value of the added item.
52
+ */
53
+ 'add',
54
+ /**
55
+ * @event clear
56
+ * Fires when the hash is cleared.
57
+ * @param {Ext.util.HashMap} this.
58
+ */
59
+ 'clear',
60
+ /**
61
+ * @event remove
62
+ * Fires when an item is removed from the hash.
63
+ * @param {Ext.util.HashMap} this.
64
+ * @param {String} key The key of the removed item.
65
+ * @param {Object} value The value of the removed item.
66
+ */
67
+ 'remove',
68
+ /**
69
+ * @event replace
70
+ * Fires when an item is replaced in the hash.
71
+ * @param {Ext.util.HashMap} this.
72
+ * @param {String} key The key of the replaced item.
73
+ * @param {Object} value The new value for the item.
74
+ * @param {Object} old The old value for the item.
75
+ */
76
+ 'replace'
77
+ );
78
+
79
+ me.mixins.observable.constructor.call(me, config);
80
+ me.clear(true);
81
+
82
+ if (keyFn) {
83
+ me.getKey = keyFn;
84
+ }
85
+ },
86
+
87
+ /**
88
+ * Gets the number of items in the hash.
89
+ * @return {Number} The number of items in the hash.
90
+ */
91
+ getCount: function() {
92
+ return this.length;
93
+ },
94
+
95
+ /**
96
+ * Implementation for being able to extract the key from an object if only
97
+ * a single argument is passed.
98
+ * @private
99
+ * @param {String} key The key
100
+ * @param {Object} value The value
101
+ * @return {Array} [key, value]
102
+ */
103
+ getData: function(key, value) {
104
+ // if we have no value, it means we need to get the key from the object
105
+ if (value === undefined) {
106
+ value = key;
107
+ key = this.getKey(value);
108
+ }
109
+
110
+ return [key, value];
111
+ },
112
+
113
+ /**
114
+ * Extracts the key from an object. This is a default implementation, it may be overridden
115
+ * @param {Object} o The object to get the key from
116
+ * @return {String} The key to use.
117
+ */
118
+ getKey: function(o) {
119
+ return o.id;
120
+ },
121
+
122
+ /**
123
+ * Adds an item to the collection. Fires the {@link #event-add} event when complete.
124
+ * @param {String} key <p>The key to associate with the item, or the new item.</p>
125
+ * <p>If a {@link #getKey} implementation was specified for this HashMap,
126
+ * or if the key of the stored items is in a property called <tt><b>id</b></tt>,
127
+ * the HashMap will be able to <i>derive</i> the key for the new item.
128
+ * In this case just pass the new item in this parameter.</p>
129
+ * @param {Object} o The item to add.
130
+ * @return {Object} The item added.
131
+ */
132
+ add: function(key, value) {
133
+ var me = this;
134
+
135
+ if (value === undefined) {
136
+ value = key;
137
+ key = me.getKey(value);
138
+ }
139
+
140
+ if (me.containsKey(key)) {
141
+ return me.replace(key, value);
142
+ }
143
+
144
+ me.map[key] = value;
145
+ ++me.length;
146
+ if (me.hasListeners.add) {
147
+ me.fireEvent('add', me, key, value);
148
+ }
149
+ return value;
150
+ },
151
+
152
+ /**
153
+ * Replaces an item in the hash. If the key doesn't exist, the
154
+ * {@link #method-add} method will be used.
155
+ * @param {String} key The key of the item.
156
+ * @param {Object} value The new value for the item.
157
+ * @return {Object} The new value of the item.
158
+ */
159
+ replace: function(key, value) {
160
+ var me = this,
161
+ map = me.map,
162
+ old;
163
+
164
+ if (value === undefined) {
165
+ value = key;
166
+ key = me.getKey(value);
167
+ }
168
+
169
+ if (!me.containsKey(key)) {
170
+ me.add(key, value);
171
+ }
172
+ old = map[key];
173
+ map[key] = value;
174
+ if (me.hasListeners.replace) {
175
+ me.fireEvent('replace', me, key, value, old);
176
+ }
177
+ return value;
178
+ },
179
+
180
+ /**
181
+ * Remove an item from the hash.
182
+ * @param {Object} o The value of the item to remove.
183
+ * @return {Boolean} True if the item was successfully removed.
184
+ */
185
+ remove: function(o) {
186
+ var key = this.findKey(o);
187
+ if (key !== undefined) {
188
+ return this.removeAtKey(key);
189
+ }
190
+ return false;
191
+ },
192
+
193
+ /**
194
+ * Remove an item from the hash.
195
+ * @param {String} key The key to remove.
196
+ * @return {Boolean} True if the item was successfully removed.
197
+ */
198
+ removeAtKey: function(key) {
199
+ var me = this,
200
+ value;
201
+
202
+ if (me.containsKey(key)) {
203
+ value = me.map[key];
204
+ delete me.map[key];
205
+ --me.length;
206
+ if (me.hasListeners.remove) {
207
+ me.fireEvent('remove', me, key, value);
208
+ }
209
+ return true;
210
+ }
211
+ return false;
212
+ },
213
+
214
+ /**
215
+ * Retrieves an item with a particular key.
216
+ * @param {String} key The key to lookup.
217
+ * @return {Object} The value at that key. If it doesn't exist, <tt>undefined</tt> is returned.
218
+ */
219
+ get: function(key) {
220
+ return this.map[key];
221
+ },
222
+
223
+ /**
224
+ * Removes all items from the hash.
225
+ * @return {Ext.util.HashMap} this
226
+ */
227
+ clear: function(/* private */ initial) {
228
+ var me = this;
229
+ me.map = {};
230
+ me.length = 0;
231
+ if (initial !== true && me.hasListeners.clear) {
232
+ me.fireEvent('clear', me);
233
+ }
234
+ return me;
235
+ },
236
+
237
+ /**
238
+ * Checks whether a key exists in the hash.
239
+ * @param {String} key The key to check for.
240
+ * @return {Boolean} True if they key exists in the hash.
241
+ */
242
+ containsKey: function(key) {
243
+ return this.map[key] !== undefined;
244
+ },
245
+
246
+ /**
247
+ * Checks whether a value exists in the hash.
248
+ * @param {Object} value The value to check for.
249
+ * @return {Boolean} True if the value exists in the dictionary.
250
+ */
251
+ contains: function(value) {
252
+ return this.containsKey(this.findKey(value));
253
+ },
254
+
255
+ /**
256
+ * Return all of the keys in the hash.
257
+ * @return {Array} An array of keys.
258
+ */
259
+ getKeys: function() {
260
+ return this.getArray(true);
261
+ },
262
+
263
+ /**
264
+ * Return all of the values in the hash.
265
+ * @return {Array} An array of values.
266
+ */
267
+ getValues: function() {
268
+ return this.getArray(false);
269
+ },
270
+
271
+ /**
272
+ * Gets either the keys/values in an array from the hash.
273
+ * @private
274
+ * @param {Boolean} isKey True to extract the keys, otherwise, the value
275
+ * @return {Array} An array of either keys/values from the hash.
276
+ */
277
+ getArray: function(isKey) {
278
+ var arr = [],
279
+ key,
280
+ map = this.map;
281
+ for (key in map) {
282
+ if (map.hasOwnProperty(key)) {
283
+ arr.push(isKey ? key: map[key]);
284
+ }
285
+ }
286
+ return arr;
287
+ },
288
+
289
+ /**
290
+ * Executes the specified function once for each item in the hash.
291
+ * Returning false from the function will cease iteration.
292
+ *
293
+ * The paramaters passed to the function are:
294
+ * <div class="mdetail-params"><ul>
295
+ * <li><b>key</b> : String<p class="sub-desc">The key of the item</p></li>
296
+ * <li><b>value</b> : Number<p class="sub-desc">The value of the item</p></li>
297
+ * <li><b>length</b> : Number<p class="sub-desc">The total number of items in the hash</p></li>
298
+ * </ul></div>
299
+ * @param {Function} fn The function to execute.
300
+ * @param {Object} scope The scope to execute in. Defaults to <tt>this</tt>.
301
+ * @return {Ext.util.HashMap} this
302
+ */
303
+ each: function(fn, scope) {
304
+ // copy items so they may be removed during iteration.
305
+ var items = Ext.apply({}, this.map),
306
+ key,
307
+ length = this.length;
308
+
309
+ scope = scope || this;
310
+ for (key in items) {
311
+ if (items.hasOwnProperty(key)) {
312
+ if (fn.call(scope, key, items[key], length) === false) {
313
+ break;
314
+ }
315
+ }
316
+ }
317
+ return this;
318
+ },
319
+
320
+ /**
321
+ * Performs a shallow copy on this hash.
322
+ * @return {Ext.util.HashMap} The new hash object.
323
+ */
324
+ clone: function() {
325
+ var hash = new this.self(),
326
+ map = this.map,
327
+ key;
328
+
329
+ hash.suspendEvents();
330
+ for (key in map) {
331
+ if (map.hasOwnProperty(key)) {
332
+ hash.add(key, map[key]);
333
+ }
334
+ }
335
+ hash.resumeEvents();
336
+ return hash;
337
+ },
338
+
339
+ /**
340
+ * @private
341
+ * Find the key for a value.
342
+ * @param {Object} value The value to find.
343
+ * @return {Object} The value of the item. Returns <tt>undefined</tt> if not found.
344
+ */
345
+ findKey: function(value) {
346
+ var key,
347
+ map = this.map;
348
+
349
+ for (key in map) {
350
+ if (map.hasOwnProperty(key) && map[key] === value) {
351
+ return key;
352
+ }
353
+ }
354
+ return undefined;
355
+ }
356
+ });