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,417 @@
1
+ /**
2
+ * Provides the ability to execute one or more arbitrary tasks in a asynchronous manner.
3
+ * Generally, you can use the singleton {@link Ext.TaskManager} instead, but if needed,
4
+ * you can create separate instances of TaskRunner. Any number of separate tasks can be
5
+ * started at any time and will run independently of each other.
6
+ *
7
+ * Example usage:
8
+ *
9
+ * // Start a simple clock task that updates a div once per second
10
+ * var updateClock = function () {
11
+ * Ext.fly('clock').update(new Date().format('g:i:s A'));
12
+ * }
13
+ *
14
+ * var runner = new Ext.util.TaskRunner();
15
+ * var task = runner.start({
16
+ * run: updateClock,
17
+ * interval: 1000
18
+ * }
19
+ *
20
+ * The equivalent using TaskManager:
21
+ *
22
+ * var task = Ext.TaskManager.start({
23
+ * run: updateClock,
24
+ * interval: 1000
25
+ * });
26
+ *
27
+ * To end a running task:
28
+ *
29
+ * task.destroy();
30
+ *
31
+ * If a task needs to be started and stopped repeated over time, you can create a
32
+ * {@link Ext.util.TaskRunner.Task Task} instance.
33
+ *
34
+ * var task = runner.newTask({
35
+ * run: function () {
36
+ * // useful code
37
+ * },
38
+ * interval: 1000
39
+ * });
40
+ *
41
+ * task.start();
42
+ *
43
+ * // ...
44
+ *
45
+ * task.stop();
46
+ *
47
+ * // ...
48
+ *
49
+ * task.start();
50
+ *
51
+ * A re-usable, one-shot task can be managed similar to the above:
52
+ *
53
+ * var task = runner.newTask({
54
+ * run: function () {
55
+ * // useful code to run once
56
+ * },
57
+ * repeat: 1
58
+ * });
59
+ *
60
+ * task.start();
61
+ *
62
+ * // ...
63
+ *
64
+ * task.start();
65
+ *
66
+ * See the {@link #start} method for details about how to configure a task object.
67
+ *
68
+ * Also see {@link Ext.util.DelayedTask}.
69
+ *
70
+ * @constructor
71
+ * @param {Number/Object} [interval=10] The minimum precision in milliseconds supported by this
72
+ * TaskRunner instance. Alternatively, a config object to apply to the new instance.
73
+ */
74
+ Ext.define('Ext.util.TaskRunner', {
75
+ /**
76
+ * @cfg interval
77
+ * The timer resolution.
78
+ */
79
+ interval: 10,
80
+
81
+ /**
82
+ * @property timerId
83
+ * The id of the current timer.
84
+ * @private
85
+ */
86
+ timerId: null,
87
+
88
+ constructor: function (interval) {
89
+ var me = this;
90
+
91
+ if (typeof interval == 'number') {
92
+ me.interval = interval;
93
+ } else if (interval) {
94
+ Ext.apply(me, interval);
95
+ }
96
+
97
+ me.tasks = [];
98
+ me.timerFn = Ext.Function.bind(me.onTick, me);
99
+ },
100
+
101
+ /**
102
+ * Creates a new {@link Ext.util.TaskRunner.Task Task} instance. These instances can
103
+ * be easily started and stopped.
104
+ * @param {Object} config The config object. For details on the supported properties,
105
+ * see {@link #start}.
106
+ */
107
+ newTask: function (config) {
108
+ var task = new Ext.util.TaskRunner.Task(config);
109
+ task.manager = this;
110
+ return task;
111
+ },
112
+
113
+ /**
114
+ * Starts a new task.
115
+ *
116
+ * Before each invocation, Ext injects the property `taskRunCount` into the task object
117
+ * so that calculations based on the repeat count can be performed.
118
+ *
119
+ * The returned task will contain a `destroy` method that can be used to destroy the
120
+ * task and cancel further calls. This is equivalent to the {@link #stop} method.
121
+ *
122
+ * @param {Object} task A config object that supports the following properties:
123
+ * @param {Function} task.run The function to execute each time the task is invoked. The
124
+ * function will be called at each interval and passed the `args` argument if specified,
125
+ * and the current invocation count if not.
126
+ *
127
+ * If a particular scope (`this` reference) is required, be sure to specify it using
128
+ * the `scope` argument.
129
+ *
130
+ * @param {Function} task.onError The function to execute in case of unhandled
131
+ * error on task.run.
132
+ *
133
+ * @param {Boolean} task.run.return `false` from this function to terminate the task.
134
+ *
135
+ * @param {Number} task.interval The frequency in milliseconds with which the task
136
+ * should be invoked.
137
+ *
138
+ * @param {Object[]} task.args An array of arguments to be passed to the function
139
+ * specified by `run`. If not specified, the current invocation count is passed.
140
+ *
141
+ * @param {Object} task.scope The scope (`this` reference) in which to execute the
142
+ * `run` function. Defaults to the task config object.
143
+ *
144
+ * @param {Number} task.duration The length of time in milliseconds to invoke the task
145
+ * before stopping automatically (defaults to indefinite).
146
+ *
147
+ * @param {Number} task.repeat The number of times to invoke the task before stopping
148
+ * automatically (defaults to indefinite).
149
+ * @return {Object} The task
150
+ */
151
+ start: function(task) {
152
+ var me = this,
153
+ now = new Date().getTime();
154
+
155
+ if (!task.pending) {
156
+ me.tasks.push(task);
157
+ task.pending = true; // don't allow the task to be added to me.tasks again
158
+ }
159
+
160
+ task.stopped = false; // might have been previously stopped...
161
+ task.taskStartTime = now;
162
+ task.taskRunTime = task.fireOnStart !== false ? 0 : task.taskStartTime;
163
+ task.taskRunCount = 0;
164
+
165
+ if (!me.firing) {
166
+ if (task.fireOnStart !== false) {
167
+ me.startTimer(0, now);
168
+ } else {
169
+ me.startTimer(task.interval, now);
170
+ }
171
+ }
172
+
173
+ return task;
174
+ },
175
+
176
+ /**
177
+ * Stops an existing running task.
178
+ * @param {Object} task The task to stop
179
+ * @return {Object} The task
180
+ */
181
+ stop: function(task) {
182
+ // NOTE: we don't attempt to remove the task from me.tasks at this point because
183
+ // this could be called from inside a task which would then corrupt the state of
184
+ // the loop in onTick
185
+ if (!task.stopped) {
186
+ task.stopped = true;
187
+
188
+ if (task.onStop) {
189
+ task.onStop.call(task.scope || task, task);
190
+ }
191
+ }
192
+
193
+ return task;
194
+ },
195
+
196
+ /**
197
+ * Stops all tasks that are currently running.
198
+ */
199
+ stopAll: function() {
200
+ // onTick will take care of cleaning up the mess after this point...
201
+ Ext.each(this.tasks, this.stop, this);
202
+ },
203
+
204
+ //-------------------------------------------------------------------------
205
+
206
+ firing: false,
207
+
208
+ nextExpires: 1e99,
209
+
210
+ // private
211
+ onTick: function () {
212
+ var me = this,
213
+ tasks = me.tasks,
214
+ now = new Date().getTime(),
215
+ nextExpires = 1e99,
216
+ len = tasks.length,
217
+ expires, newTasks, i, task, rt, remove;
218
+
219
+ me.timerId = null;
220
+ me.firing = true; // ensure we don't startTimer during this loop...
221
+
222
+ // tasks.length can be > len if start is called during a task.run call... so we
223
+ // first check len to avoid tasks.length reference but eventually we need to also
224
+ // check tasks.length. we avoid repeating use of tasks.length by setting len at
225
+ // that time (to help the next loop)
226
+ for (i = 0; i < len || i < (len = tasks.length); ++i) {
227
+ task = tasks[i];
228
+
229
+ if (!(remove = task.stopped)) {
230
+ expires = task.taskRunTime + task.interval;
231
+
232
+ if (expires <= now) {
233
+ rt = 1; // otherwise we have a stale "rt"
234
+ try {
235
+ rt = task.run.apply(task.scope || task, task.args || [++task.taskRunCount]);
236
+ } catch (taskError) {
237
+ try {
238
+ if (task.onError) {
239
+ rt = task.onError.call(task.scope || task, task, taskError);
240
+ }
241
+ } catch (ignore) { }
242
+ }
243
+ task.taskRunTime = now;
244
+ if (rt === false || task.taskRunCount === task.repeat) {
245
+ me.stop(task);
246
+ remove = true;
247
+ } else {
248
+ remove = task.stopped; // in case stop was called by run
249
+ expires = now + task.interval;
250
+ }
251
+ }
252
+
253
+ if (!remove && task.duration && task.duration <= (now - task.taskStartTime)) {
254
+ me.stop(task);
255
+ remove = true;
256
+ }
257
+ }
258
+
259
+ if (remove) {
260
+ task.pending = false; // allow the task to be added to me.tasks again
261
+
262
+ // once we detect that a task needs to be removed, we copy the tasks that
263
+ // will carry forward into newTasks... this way we avoid O(N*N) to remove
264
+ // each task from the tasks array (and ripple the array down) and also the
265
+ // potentially wasted effort of making a new tasks[] even if all tasks are
266
+ // going into the next wave.
267
+ if (!newTasks) {
268
+ newTasks = tasks.slice(0, i);
269
+ // we don't set me.tasks here because callbacks can also start tasks,
270
+ // which get added to me.tasks... so we will visit them in this loop
271
+ // and account for their expirations in nextExpires...
272
+ }
273
+ } else {
274
+ if (newTasks) {
275
+ newTasks.push(task); // we've cloned the tasks[], so keep this one...
276
+ }
277
+
278
+ if (nextExpires > expires) {
279
+ nextExpires = expires; // track the nearest expiration time
280
+ }
281
+ }
282
+ }
283
+
284
+ if (newTasks) {
285
+ // only now can we copy the newTasks to me.tasks since no user callbacks can
286
+ // take place
287
+ me.tasks = newTasks;
288
+ }
289
+
290
+ me.firing = false; // we're done, so allow startTimer afterwards
291
+
292
+ if (me.tasks.length) {
293
+ // we create a new Date here because all the callbacks could have taken a long
294
+ // time... we want to base the next timeout on the current time (after the
295
+ // callback storm):
296
+ me.startTimer(nextExpires - now, new Date().getTime());
297
+ }
298
+ },
299
+
300
+ // private
301
+ startTimer: function (timeout, now) {
302
+ var me = this,
303
+ expires = now + timeout,
304
+ timerId = me.timerId;
305
+
306
+ // Check to see if this request is enough in advance of the current timer. If so,
307
+ // we reschedule the timer based on this new expiration.
308
+ if (timerId && me.nextExpires - expires > me.interval) {
309
+ clearTimeout(timerId);
310
+ timerId = null;
311
+ }
312
+
313
+ if (!timerId) {
314
+ if (timeout < me.interval) {
315
+ timeout = me.interval;
316
+ }
317
+
318
+ me.timerId = setTimeout(me.timerFn, timeout);
319
+ me.nextExpires = expires;
320
+ }
321
+ }
322
+ },
323
+ function () {
324
+ var me = this,
325
+ proto = me.prototype;
326
+
327
+ /**
328
+ * Destroys this instance, stopping all tasks that are currently running.
329
+ * @method destroy
330
+ */
331
+ proto.destroy = proto.stopAll;
332
+
333
+ /**
334
+ * @class Ext.TaskManager
335
+ * @extends Ext.util.TaskRunner
336
+ * @singleton
337
+ *
338
+ * A static {@link Ext.util.TaskRunner} instance that can be used to start and stop
339
+ * arbitrary tasks. See {@link Ext.util.TaskRunner} for supported methods and task
340
+ * config properties.
341
+ *
342
+ * // Start a simple clock task that updates a div once per second
343
+ * var task = {
344
+ * run: function(){
345
+ * Ext.fly('clock').update(new Date().format('g:i:s A'));
346
+ * },
347
+ * interval: 1000 //1 second
348
+ * }
349
+ *
350
+ * Ext.TaskManager.start(task);
351
+ *
352
+ * See the {@link #start} method for details about how to configure a task object.
353
+ */
354
+ Ext.util.TaskManager = Ext.TaskManager = new me();
355
+
356
+ /**
357
+ * Instances of this class are created by {@link Ext.util.TaskRunner#newTask} method.
358
+ *
359
+ * For details on config properties, see {@link Ext.util.TaskRunner#start}.
360
+ * @class Ext.util.TaskRunner.Task
361
+ */
362
+ me.Task = new Ext.Class({
363
+ isTask: true,
364
+
365
+ /**
366
+ * This flag is set to `true` by {@link #stop}.
367
+ * @private
368
+ */
369
+ stopped: true, // this avoids the odd combination of !stopped && !pending
370
+
371
+ /**
372
+ * Override default behavior
373
+ */
374
+ fireOnStart: false,
375
+
376
+ constructor: function (config) {
377
+ Ext.apply(this, config);
378
+ },
379
+
380
+ /**
381
+ * Restarts this task, clearing it duration, expiration and run count.
382
+ * @param {Number} [interval] Optionally reset this task's interval.
383
+ */
384
+ restart: function (interval) {
385
+ if (interval !== undefined) {
386
+ this.interval = interval;
387
+ }
388
+
389
+ this.manager.start(this);
390
+ },
391
+
392
+ /**
393
+ * Starts this task if it is not already started.
394
+ * @param {Number} [interval] Optionally reset this task's interval.
395
+ */
396
+ start: function (interval) {
397
+ if (this.stopped) {
398
+ this.restart(interval);
399
+ }
400
+ },
401
+
402
+ /**
403
+ * Stops this task.
404
+ */
405
+ stop: function () {
406
+ this.manager.stop(this);
407
+ }
408
+ });
409
+
410
+ proto = me.Task.prototype;
411
+
412
+ /**
413
+ * Destroys this instance, stopping this task's execution.
414
+ * @method destroy
415
+ */
416
+ proto.destroy = proto.stop;
417
+ });
@@ -0,0 +1,364 @@
1
+ /**
2
+ * @author Jacky Nguyen <jacky@sencha.com>
3
+ * @docauthor Jacky Nguyen <jacky@sencha.com>
4
+ * @class Ext.Version
5
+ *
6
+ * A utility class that wrap around a string version number and provide convenient
7
+ * method to perform comparison. See also: {@link Ext.Version#compare compare}. Example:
8
+
9
+ var version = new Ext.Version('1.0.2beta');
10
+ console.log("Version is " + version); // Version is 1.0.2beta
11
+
12
+ console.log(version.getMajor()); // 1
13
+ console.log(version.getMinor()); // 0
14
+ console.log(version.getPatch()); // 2
15
+ console.log(version.getBuild()); // 0
16
+ console.log(version.getRelease()); // beta
17
+
18
+ console.log(version.isGreaterThan('1.0.1')); // True
19
+ console.log(version.isGreaterThan('1.0.2alpha')); // True
20
+ console.log(version.isGreaterThan('1.0.2RC')); // False
21
+ console.log(version.isGreaterThan('1.0.2')); // False
22
+ console.log(version.isLessThan('1.0.2')); // True
23
+
24
+ console.log(version.match(1.0)); // True
25
+ console.log(version.match('1.0.2')); // True
26
+
27
+ * @markdown
28
+ */
29
+ (function() {
30
+
31
+ // Current core version
32
+ var version = '4.1.0', Version;
33
+ Ext.Version = Version = Ext.extend(Object, {
34
+
35
+ /**
36
+ * @param {String/Number} version The version number in the follow standard format: major[.minor[.patch[.build[release]]]]
37
+ * Examples: 1.0 or 1.2.3beta or 1.2.3.4RC
38
+ * @return {Ext.Version} this
39
+ */
40
+ constructor: function(version) {
41
+ var parts, releaseStartIndex;
42
+
43
+ if (version instanceof Version) {
44
+ return version;
45
+ }
46
+
47
+ this.version = this.shortVersion = String(version).toLowerCase().replace(/_/g, '.').replace(/[\-+]/g, '');
48
+
49
+ releaseStartIndex = this.version.search(/([^\d\.])/);
50
+
51
+ if (releaseStartIndex !== -1) {
52
+ this.release = this.version.substr(releaseStartIndex, version.length);
53
+ this.shortVersion = this.version.substr(0, releaseStartIndex);
54
+ }
55
+
56
+ this.shortVersion = this.shortVersion.replace(/[^\d]/g, '');
57
+
58
+ parts = this.version.split('.');
59
+
60
+ this.major = parseInt(parts.shift() || 0, 10);
61
+ this.minor = parseInt(parts.shift() || 0, 10);
62
+ this.patch = parseInt(parts.shift() || 0, 10);
63
+ this.build = parseInt(parts.shift() || 0, 10);
64
+
65
+ return this;
66
+ },
67
+
68
+ /**
69
+ * Override the native toString method
70
+ * @private
71
+ * @return {String} version
72
+ */
73
+ toString: function() {
74
+ return this.version;
75
+ },
76
+
77
+ /**
78
+ * Override the native valueOf method
79
+ * @private
80
+ * @return {String} version
81
+ */
82
+ valueOf: function() {
83
+ return this.version;
84
+ },
85
+
86
+ /**
87
+ * Returns the major component value
88
+ * @return {Number} major
89
+ */
90
+ getMajor: function() {
91
+ return this.major || 0;
92
+ },
93
+
94
+ /**
95
+ * Returns the minor component value
96
+ * @return {Number} minor
97
+ */
98
+ getMinor: function() {
99
+ return this.minor || 0;
100
+ },
101
+
102
+ /**
103
+ * Returns the patch component value
104
+ * @return {Number} patch
105
+ */
106
+ getPatch: function() {
107
+ return this.patch || 0;
108
+ },
109
+
110
+ /**
111
+ * Returns the build component value
112
+ * @return {Number} build
113
+ */
114
+ getBuild: function() {
115
+ return this.build || 0;
116
+ },
117
+
118
+ /**
119
+ * Returns the release component value
120
+ * @return {Number} release
121
+ */
122
+ getRelease: function() {
123
+ return this.release || '';
124
+ },
125
+
126
+ /**
127
+ * Returns whether this version if greater than the supplied argument
128
+ * @param {String/Number} target The version to compare with
129
+ * @return {Boolean} True if this version if greater than the target, false otherwise
130
+ */
131
+ isGreaterThan: function(target) {
132
+ return Version.compare(this.version, target) === 1;
133
+ },
134
+
135
+ /**
136
+ * Returns whether this version if greater than or equal to the supplied argument
137
+ * @param {String/Number} target The version to compare with
138
+ * @return {Boolean} True if this version if greater than or equal to the target, false otherwise
139
+ */
140
+ isGreaterThanOrEqual: function(target) {
141
+ return Version.compare(this.version, target) >= 0;
142
+ },
143
+
144
+ /**
145
+ * Returns whether this version if smaller than the supplied argument
146
+ * @param {String/Number} target The version to compare with
147
+ * @return {Boolean} True if this version if smaller than the target, false otherwise
148
+ */
149
+ isLessThan: function(target) {
150
+ return Version.compare(this.version, target) === -1;
151
+ },
152
+
153
+ /**
154
+ * Returns whether this version if less than or equal to the supplied argument
155
+ * @param {String/Number} target The version to compare with
156
+ * @return {Boolean} True if this version if less than or equal to the target, false otherwise
157
+ */
158
+ isLessThanOrEqual: function(target) {
159
+ return Version.compare(this.version, target) <= 0;
160
+ },
161
+
162
+ /**
163
+ * Returns whether this version equals to the supplied argument
164
+ * @param {String/Number} target The version to compare with
165
+ * @return {Boolean} True if this version equals to the target, false otherwise
166
+ */
167
+ equals: function(target) {
168
+ return Version.compare(this.version, target) === 0;
169
+ },
170
+
171
+ /**
172
+ * Returns whether this version matches the supplied argument. Example:
173
+ * <pre><code>
174
+ * var version = new Ext.Version('1.0.2beta');
175
+ * console.log(version.match(1)); // True
176
+ * console.log(version.match(1.0)); // True
177
+ * console.log(version.match('1.0.2')); // True
178
+ * console.log(version.match('1.0.2RC')); // False
179
+ * </code></pre>
180
+ * @param {String/Number} target The version to compare with
181
+ * @return {Boolean} True if this version matches the target, false otherwise
182
+ */
183
+ match: function(target) {
184
+ target = String(target);
185
+ return this.version.substr(0, target.length) === target;
186
+ },
187
+
188
+ /**
189
+ * Returns this format: [major, minor, patch, build, release]. Useful for comparison
190
+ * @return {Number[]}
191
+ */
192
+ toArray: function() {
193
+ return [this.getMajor(), this.getMinor(), this.getPatch(), this.getBuild(), this.getRelease()];
194
+ },
195
+
196
+ /**
197
+ * Returns shortVersion version without dots and release
198
+ * @return {String}
199
+ */
200
+ getShortVersion: function() {
201
+ return this.shortVersion;
202
+ },
203
+
204
+ /**
205
+ * Convenient alias to {@link Ext.Version#isGreaterThan isGreaterThan}
206
+ * @param {String/Number} target
207
+ * @return {Boolean}
208
+ */
209
+ gt: function() {
210
+ return this.isGreaterThan.apply(this, arguments);
211
+ },
212
+
213
+ /**
214
+ * Convenient alias to {@link Ext.Version#isLessThan isLessThan}
215
+ * @param {String/Number} target
216
+ * @return {Boolean}
217
+ */
218
+ lt: function() {
219
+ return this.isLessThan.apply(this, arguments);
220
+ },
221
+
222
+ /**
223
+ * Convenient alias to {@link Ext.Version#isGreaterThanOrEqual isGreaterThanOrEqual}
224
+ * @param {String/Number} target
225
+ * @return {Boolean}
226
+ */
227
+ gtEq: function() {
228
+ return this.isGreaterThanOrEqual.apply(this, arguments);
229
+ },
230
+
231
+ /**
232
+ * Convenient alias to {@link Ext.Version#isLessThanOrEqual isLessThanOrEqual}
233
+ * @param {String/Number} target
234
+ * @return {Boolean}
235
+ */
236
+ ltEq: function() {
237
+ return this.isLessThanOrEqual.apply(this, arguments);
238
+ }
239
+ });
240
+
241
+ Ext.apply(Version, {
242
+ // @private
243
+ releaseValueMap: {
244
+ 'dev': -6,
245
+ 'alpha': -5,
246
+ 'a': -5,
247
+ 'beta': -4,
248
+ 'b': -4,
249
+ 'rc': -3,
250
+ '#': -2,
251
+ 'p': -1,
252
+ 'pl': -1
253
+ },
254
+
255
+ /**
256
+ * Converts a version component to a comparable value
257
+ *
258
+ * @static
259
+ * @param {Object} value The value to convert
260
+ * @return {Object}
261
+ */
262
+ getComponentValue: function(value) {
263
+ return !value ? 0 : (isNaN(value) ? this.releaseValueMap[value] || value : parseInt(value, 10));
264
+ },
265
+
266
+ /**
267
+ * Compare 2 specified versions, starting from left to right. If a part contains special version strings,
268
+ * they are handled in the following order:
269
+ * 'dev' < 'alpha' = 'a' < 'beta' = 'b' < 'RC' = 'rc' < '#' < 'pl' = 'p' < 'anything else'
270
+ *
271
+ * @static
272
+ * @param {String} current The current version to compare to
273
+ * @param {String} target The target version to compare to
274
+ * @return {Number} Returns -1 if the current version is smaller than the target version, 1 if greater, and 0 if they're equivalent
275
+ */
276
+ compare: function(current, target) {
277
+ var currentValue, targetValue, i;
278
+
279
+ current = new Version(current).toArray();
280
+ target = new Version(target).toArray();
281
+
282
+ for (i = 0; i < Math.max(current.length, target.length); i++) {
283
+ currentValue = this.getComponentValue(current[i]);
284
+ targetValue = this.getComponentValue(target[i]);
285
+
286
+ if (currentValue < targetValue) {
287
+ return -1;
288
+ } else if (currentValue > targetValue) {
289
+ return 1;
290
+ }
291
+ }
292
+
293
+ return 0;
294
+ }
295
+ });
296
+
297
+ Ext.apply(Ext, {
298
+ /**
299
+ * @private
300
+ */
301
+ versions: {},
302
+
303
+ /**
304
+ * @private
305
+ */
306
+ lastRegisteredVersion: null,
307
+
308
+ /**
309
+ * Set version number for the given package name.
310
+ *
311
+ * @param {String} packageName The package name, for example: 'core', 'touch', 'extjs'
312
+ * @param {String/Ext.Version} version The version, for example: '1.2.3alpha', '2.4.0-dev'
313
+ * @return {Ext}
314
+ */
315
+ setVersion: function(packageName, version) {
316
+ Ext.versions[packageName] = new Version(version);
317
+ Ext.lastRegisteredVersion = Ext.versions[packageName];
318
+
319
+ return this;
320
+ },
321
+
322
+ /**
323
+ * Get the version number of the supplied package name; will return the last registered version
324
+ * (last Ext.setVersion call) if there's no package name given.
325
+ *
326
+ * @param {String} packageName (Optional) The package name, for example: 'core', 'touch', 'extjs'
327
+ * @return {Ext.Version} The version
328
+ */
329
+ getVersion: function(packageName) {
330
+ if (packageName === undefined) {
331
+ return Ext.lastRegisteredVersion;
332
+ }
333
+
334
+ return Ext.versions[packageName];
335
+ },
336
+
337
+ /**
338
+ * Create a closure for deprecated code.
339
+ *
340
+ // This means Ext.oldMethod is only supported in 4.0.0beta and older.
341
+ // If Ext.getVersion('extjs') returns a version that is later than '4.0.0beta', for example '4.0.0RC',
342
+ // the closure will not be invoked
343
+ Ext.deprecate('extjs', '4.0.0beta', function() {
344
+ Ext.oldMethod = Ext.newMethod;
345
+
346
+ ...
347
+ });
348
+
349
+ * @param {String} packageName The package name
350
+ * @param {String} since The last version before it's deprecated
351
+ * @param {Function} closure The callback function to be executed with the specified version is less than the current version
352
+ * @param {Object} scope The execution scope (<tt>this</tt>) if the closure
353
+ * @markdown
354
+ */
355
+ deprecate: function(packageName, since, closure, scope) {
356
+ if (Version.compare(Ext.getVersion(packageName), since) < 1) {
357
+ closure.call(scope);
358
+ }
359
+ }
360
+ }); // End Versioning
361
+
362
+ Ext.setVersion('core', version);
363
+
364
+ }());