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,380 @@
1
+ /**
2
+ * @docauthor Jason Johnston <jason@sencha.com>
3
+ *
4
+ * A numeric text field that provides automatic keystroke filtering to disallow non-numeric characters,
5
+ * and numeric validation to limit the value to a range of valid numbers. The range of acceptable number
6
+ * values can be controlled by setting the {@link #minValue} and {@link #maxValue} configs, and fractional
7
+ * decimals can be disallowed by setting {@link #allowDecimals} to `false`.
8
+ *
9
+ * By default, the number field is also rendered with a set of up/down spinner buttons and has
10
+ * up/down arrow key and mouse wheel event listeners attached for incrementing/decrementing the value by the
11
+ * {@link #step} value. To hide the spinner buttons set `{@link #hideTrigger hideTrigger}:true`; to disable
12
+ * the arrow key and mouse wheel handlers set `{@link #keyNavEnabled keyNavEnabled}:false` and
13
+ * `{@link #mouseWheelEnabled mouseWheelEnabled}:false`. See the example below.
14
+ *
15
+ * # Example usage
16
+ *
17
+ * @example
18
+ * Ext.create('Ext.form.Panel', {
19
+ * title: 'On The Wall',
20
+ * width: 300,
21
+ * bodyPadding: 10,
22
+ * renderTo: Ext.getBody(),
23
+ * items: [{
24
+ * xtype: 'numberfield',
25
+ * anchor: '100%',
26
+ * name: 'bottles',
27
+ * fieldLabel: 'Bottles of Beer',
28
+ * value: 99,
29
+ * maxValue: 99,
30
+ * minValue: 0
31
+ * }],
32
+ * buttons: [{
33
+ * text: 'Take one down, pass it around',
34
+ * handler: function() {
35
+ * this.up('form').down('[name=bottles]').spinDown();
36
+ * }
37
+ * }]
38
+ * });
39
+ *
40
+ * # Removing UI Enhancements
41
+ *
42
+ * @example
43
+ * Ext.create('Ext.form.Panel', {
44
+ * title: 'Personal Info',
45
+ * width: 300,
46
+ * bodyPadding: 10,
47
+ * renderTo: Ext.getBody(),
48
+ * items: [{
49
+ * xtype: 'numberfield',
50
+ * anchor: '100%',
51
+ * name: 'age',
52
+ * fieldLabel: 'Age',
53
+ * minValue: 0, //prevents negative numbers
54
+ *
55
+ * // Remove spinner buttons, and arrow key and mouse wheel listeners
56
+ * hideTrigger: true,
57
+ * keyNavEnabled: false,
58
+ * mouseWheelEnabled: false
59
+ * }]
60
+ * });
61
+ *
62
+ * # Using Step
63
+ *
64
+ * @example
65
+ * Ext.create('Ext.form.Panel', {
66
+ * renderTo: Ext.getBody(),
67
+ * title: 'Step',
68
+ * width: 300,
69
+ * bodyPadding: 10,
70
+ * items: [{
71
+ * xtype: 'numberfield',
72
+ * anchor: '100%',
73
+ * name: 'evens',
74
+ * fieldLabel: 'Even Numbers',
75
+ *
76
+ * // Set step so it skips every other number
77
+ * step: 2,
78
+ * value: 0,
79
+ *
80
+ * // Add change handler to force user-entered numbers to evens
81
+ * listeners: {
82
+ * change: function(field, value) {
83
+ * value = parseInt(value, 10);
84
+ * field.setValue(value + value % 2);
85
+ * }
86
+ * }
87
+ * }]
88
+ * });
89
+ */
90
+ Ext.define('Ext.form.field.Number', {
91
+ extend:'Ext.form.field.Spinner',
92
+ alias: 'widget.numberfield',
93
+ alternateClassName: ['Ext.form.NumberField', 'Ext.form.Number'],
94
+
95
+ /**
96
+ * @cfg {RegExp} stripCharsRe
97
+ * @private
98
+ */
99
+ /**
100
+ * @cfg {RegExp} maskRe
101
+ * @private
102
+ */
103
+
104
+ /**
105
+ * @cfg {Boolean} allowDecimals
106
+ * False to disallow decimal values
107
+ */
108
+ allowDecimals : true,
109
+
110
+ /**
111
+ * @cfg {String} decimalSeparator
112
+ * Character(s) to allow as the decimal separator
113
+ */
114
+ //<locale>
115
+ decimalSeparator : '.',
116
+ //</locale>
117
+
118
+ /**
119
+ * @cfg {Boolean} [submitLocaleSeparator=true]
120
+ * False to ensure that the {@link #getSubmitValue} method strips
121
+ * always uses `.` as the separator, regardless of the {@link #decimalSeparator}
122
+ * configuration.
123
+ */
124
+ //<locale>
125
+ submitLocaleSeparator: true,
126
+ //</locale>
127
+
128
+ /**
129
+ * @cfg {Number} decimalPrecision
130
+ * The maximum precision to display after the decimal separator
131
+ */
132
+ //<locale>
133
+ decimalPrecision : 2,
134
+ //</locale>
135
+
136
+ /**
137
+ * @cfg {Number} minValue
138
+ * The minimum allowed value. Will be used by the field's validation logic,
139
+ * and for {@link Ext.form.field.Spinner#setSpinUpEnabled enabling/disabling the down spinner button}.
140
+ *
141
+ * Defaults to Number.NEGATIVE_INFINITY.
142
+ */
143
+ minValue: Number.NEGATIVE_INFINITY,
144
+
145
+ /**
146
+ * @cfg {Number} maxValue
147
+ * The maximum allowed value. Will be used by the field's validation logic, and for
148
+ * {@link Ext.form.field.Spinner#setSpinUpEnabled enabling/disabling the up spinner button}.
149
+ *
150
+ * Defaults to Number.MAX_VALUE.
151
+ */
152
+ maxValue: Number.MAX_VALUE,
153
+
154
+ /**
155
+ * @cfg {Number} step
156
+ * Specifies a numeric interval by which the field's value will be incremented or decremented when the user invokes
157
+ * the spinner.
158
+ */
159
+ step: 1,
160
+
161
+ /**
162
+ * @cfg {String} minText
163
+ * Error text to display if the minimum value validation fails.
164
+ */
165
+ //<locale>
166
+ minText : 'The minimum value for this field is {0}',
167
+ //</locale>
168
+
169
+ /**
170
+ * @cfg {String} maxText
171
+ * Error text to display if the maximum value validation fails.
172
+ */
173
+ //<locale>
174
+ maxText : 'The maximum value for this field is {0}',
175
+ //</locale>
176
+
177
+ /**
178
+ * @cfg {String} nanText
179
+ * Error text to display if the value is not a valid number. For example, this can happen if a valid character like
180
+ * '.' or '-' is left in the field with no number.
181
+ */
182
+ //<locale>
183
+ nanText : '{0} is not a valid number',
184
+ //</locale>
185
+
186
+ /**
187
+ * @cfg {String} negativeText
188
+ * Error text to display if the value is negative and {@link #minValue} is set to 0. This is used instead of the
189
+ * {@link #minText} in that circumstance only.
190
+ */
191
+ //<locale>
192
+ negativeText : 'The value cannot be negative',
193
+ //</locale>
194
+
195
+ /**
196
+ * @cfg {String} baseChars
197
+ * The base set of characters to evaluate as valid numbers.
198
+ */
199
+ baseChars : '0123456789',
200
+
201
+ /**
202
+ * @cfg {Boolean} autoStripChars
203
+ * True to automatically strip not allowed characters from the field.
204
+ */
205
+ autoStripChars: false,
206
+
207
+ initComponent: function() {
208
+ var me = this,
209
+ allowed;
210
+
211
+ me.callParent();
212
+
213
+ me.setMinValue(me.minValue);
214
+ me.setMaxValue(me.maxValue);
215
+
216
+ // Build regexes for masking and stripping based on the configured options
217
+ if (me.disableKeyFilter !== true) {
218
+ allowed = me.baseChars + '';
219
+ if (me.allowDecimals) {
220
+ allowed += me.decimalSeparator;
221
+ }
222
+ if (me.minValue < 0) {
223
+ allowed += '-';
224
+ }
225
+ allowed = Ext.String.escapeRegex(allowed);
226
+ me.maskRe = new RegExp('[' + allowed + ']');
227
+ if (me.autoStripChars) {
228
+ me.stripCharsRe = new RegExp('[^' + allowed + ']', 'gi');
229
+ }
230
+ }
231
+ },
232
+
233
+ /**
234
+ * Runs all of Number's validations and returns an array of any errors. Note that this first runs Text's
235
+ * validations, so the returned array is an amalgamation of all field errors. The additional validations run test
236
+ * that the value is a number, and that it is within the configured min and max values.
237
+ * @param {Object} [value] The value to get errors for (defaults to the current field value)
238
+ * @return {String[]} All validation errors for this field
239
+ */
240
+ getErrors: function(value) {
241
+ var me = this,
242
+ errors = me.callParent(arguments),
243
+ format = Ext.String.format,
244
+ num;
245
+
246
+ value = Ext.isDefined(value) ? value : this.processRawValue(this.getRawValue());
247
+
248
+ if (value.length < 1) { // if it's blank and textfield didn't flag it then it's valid
249
+ return errors;
250
+ }
251
+
252
+ value = String(value).replace(me.decimalSeparator, '.');
253
+
254
+ if(isNaN(value)){
255
+ errors.push(format(me.nanText, value));
256
+ }
257
+
258
+ num = me.parseValue(value);
259
+
260
+ if (me.minValue === 0 && num < 0) {
261
+ errors.push(this.negativeText);
262
+ }
263
+ else if (num < me.minValue) {
264
+ errors.push(format(me.minText, me.minValue));
265
+ }
266
+
267
+ if (num > me.maxValue) {
268
+ errors.push(format(me.maxText, me.maxValue));
269
+ }
270
+
271
+
272
+ return errors;
273
+ },
274
+
275
+ rawToValue: function(rawValue) {
276
+ var value = this.fixPrecision(this.parseValue(rawValue));
277
+ if (value === null) {
278
+ value = rawValue || null;
279
+ }
280
+ return value;
281
+ },
282
+
283
+ valueToRaw: function(value) {
284
+ var me = this,
285
+ decimalSeparator = me.decimalSeparator;
286
+ value = me.parseValue(value);
287
+ value = me.fixPrecision(value);
288
+ value = Ext.isNumber(value) ? value : parseFloat(String(value).replace(decimalSeparator, '.'));
289
+ value = isNaN(value) ? '' : String(value).replace('.', decimalSeparator);
290
+ return value;
291
+ },
292
+
293
+ getSubmitValue: function() {
294
+ var me = this,
295
+ value = me.callParent();
296
+
297
+ if (!me.submitLocaleSeparator) {
298
+ value = value.replace(me.decimalSeparator, '.');
299
+ }
300
+ return value;
301
+ },
302
+
303
+ onChange: function() {
304
+ this.toggleSpinners();
305
+ this.callParent(arguments);
306
+ },
307
+
308
+ toggleSpinners: function(){
309
+ var me = this,
310
+ value = me.getValue(),
311
+ valueIsNull = value === null;
312
+
313
+ me.setSpinUpEnabled(valueIsNull || value < me.maxValue);
314
+ me.setSpinDownEnabled(valueIsNull || value > me.minValue);
315
+ },
316
+
317
+ /**
318
+ * Replaces any existing {@link #minValue} with the new value.
319
+ * @param {Number} value The minimum value
320
+ */
321
+ setMinValue : function(value) {
322
+ this.minValue = Ext.Number.from(value, Number.NEGATIVE_INFINITY);
323
+ this.toggleSpinners();
324
+ },
325
+
326
+ /**
327
+ * Replaces any existing {@link #maxValue} with the new value.
328
+ * @param {Number} value The maximum value
329
+ */
330
+ setMaxValue: function(value) {
331
+ this.maxValue = Ext.Number.from(value, Number.MAX_VALUE);
332
+ this.toggleSpinners();
333
+ },
334
+
335
+ // private
336
+ parseValue : function(value) {
337
+ value = parseFloat(String(value).replace(this.decimalSeparator, '.'));
338
+ return isNaN(value) ? null : value;
339
+ },
340
+
341
+ /**
342
+ * @private
343
+ */
344
+ fixPrecision : function(value) {
345
+ var me = this,
346
+ nan = isNaN(value),
347
+ precision = me.decimalPrecision;
348
+
349
+ if (nan || !value) {
350
+ return nan ? '' : value;
351
+ } else if (!me.allowDecimals || precision <= 0) {
352
+ precision = 0;
353
+ }
354
+
355
+ return parseFloat(Ext.Number.toFixed(parseFloat(value), precision));
356
+ },
357
+
358
+ beforeBlur : function() {
359
+ var me = this,
360
+ v = me.parseValue(me.getRawValue());
361
+
362
+ if (!Ext.isEmpty(v)) {
363
+ me.setValue(v);
364
+ }
365
+ },
366
+
367
+ onSpinUp: function() {
368
+ var me = this;
369
+ if (!me.readOnly) {
370
+ me.setValue(Ext.Number.constrain(me.getValue() + me.step, me.minValue, me.maxValue));
371
+ }
372
+ },
373
+
374
+ onSpinDown: function() {
375
+ var me = this;
376
+ if (!me.readOnly) {
377
+ me.setValue(Ext.Number.constrain(me.getValue() - me.step, me.minValue, me.maxValue));
378
+ }
379
+ }
380
+ });
@@ -0,0 +1,321 @@
1
+ /**
2
+ * An abstract class for fields that have a single trigger which opens a "picker" popup below the field, e.g. a combobox
3
+ * menu list or a date picker. It provides a base implementation for toggling the picker's visibility when the trigger
4
+ * is clicked, as well as keyboard navigation and some basic events. Sizing and alignment of the picker can be
5
+ * controlled via the {@link #matchFieldWidth} and {@link #pickerAlign}/{@link #pickerOffset} config properties
6
+ * respectively.
7
+ *
8
+ * You would not normally use this class directly, but instead use it as the parent class for a specific picker field
9
+ * implementation. Subclasses must implement the {@link #createPicker} method to create a picker component appropriate
10
+ * for the field.
11
+ */
12
+ Ext.define('Ext.form.field.Picker', {
13
+ extend: 'Ext.form.field.Trigger',
14
+ alias: 'widget.pickerfield',
15
+ alternateClassName: 'Ext.form.Picker',
16
+ requires: ['Ext.util.KeyNav'],
17
+
18
+ /**
19
+ * @cfg {Boolean} matchFieldWidth
20
+ * Whether the picker dropdown's width should be explicitly set to match the width of the field. Defaults to true.
21
+ */
22
+ matchFieldWidth: true,
23
+
24
+ /**
25
+ * @cfg {String} pickerAlign
26
+ * The {@link Ext.Element#alignTo alignment position} with which to align the picker. Defaults to "tl-bl?"
27
+ */
28
+ pickerAlign: 'tl-bl?',
29
+
30
+ /**
31
+ * @cfg {Number[]} pickerOffset
32
+ * An offset [x,y] to use in addition to the {@link #pickerAlign} when positioning the picker.
33
+ * Defaults to undefined.
34
+ */
35
+
36
+ /**
37
+ * @cfg {String} [openCls='x-pickerfield-open']
38
+ * A class to be added to the field's {@link #bodyEl} element when the picker is opened.
39
+ */
40
+ openCls: Ext.baseCSSPrefix + 'pickerfield-open',
41
+
42
+ /**
43
+ * @property {Boolean} isExpanded
44
+ * True if the picker is currently expanded, false if not.
45
+ */
46
+
47
+ /**
48
+ * @cfg {Boolean} editable
49
+ * False to prevent the user from typing text directly into the field; the field can only have its value set via
50
+ * selecting a value from the picker. In this state, the picker can also be opened by clicking directly on the input
51
+ * field itself.
52
+ */
53
+ editable: true,
54
+
55
+
56
+ initComponent: function() {
57
+ this.callParent();
58
+
59
+ // Custom events
60
+ this.addEvents(
61
+ /**
62
+ * @event expand
63
+ * Fires when the field's picker is expanded.
64
+ * @param {Ext.form.field.Picker} field This field instance
65
+ */
66
+ 'expand',
67
+ /**
68
+ * @event collapse
69
+ * Fires when the field's picker is collapsed.
70
+ * @param {Ext.form.field.Picker} field This field instance
71
+ */
72
+ 'collapse',
73
+ /**
74
+ * @event select
75
+ * Fires when a value is selected via the picker.
76
+ * @param {Ext.form.field.Picker} field This field instance
77
+ * @param {Object} value The value that was selected. The exact type of this value is dependent on
78
+ * the individual field and picker implementations.
79
+ */
80
+ 'select'
81
+ );
82
+ },
83
+
84
+
85
+ initEvents: function() {
86
+ var me = this;
87
+ me.callParent();
88
+
89
+ // Add handlers for keys to expand/collapse the picker
90
+ me.keyNav = new Ext.util.KeyNav(me.inputEl, {
91
+ down: me.onDownArrow,
92
+ esc: {
93
+ handler: me.onEsc,
94
+ scope: me,
95
+ defaultEventAction: false
96
+ },
97
+ scope: me,
98
+ forceKeyDown: true
99
+ });
100
+
101
+ // Non-editable allows opening the picker by clicking the field
102
+ if (!me.editable) {
103
+ me.mon(me.inputEl, 'click', me.onTriggerClick, me);
104
+ }
105
+
106
+ // Disable native browser autocomplete
107
+ if (Ext.isGecko) {
108
+ me.inputEl.dom.setAttribute('autocomplete', 'off');
109
+ }
110
+ },
111
+
112
+ // private
113
+ onEsc: function(e) {
114
+ var me = this;
115
+ if (me.isExpanded) {
116
+ me.collapse();
117
+ e.stopEvent();
118
+ } else {
119
+ // If there's an ancestor Window which will see the ESC event and hide, ensure this Field blurs
120
+ // so that a down arrow will not pop up a disembodied dropdown list.
121
+ if (me.up('window')) {
122
+ me.blur();
123
+ }
124
+ // Otherwise, only stop the ESC key event if it's not going to bubble up to the FocusManager
125
+ else if ((!Ext.FocusManager || !Ext.FocusManager.enabled)) {
126
+ e.stopEvent();
127
+ }
128
+ }
129
+ },
130
+
131
+ onDownArrow: function(e) {
132
+ if (!this.isExpanded) {
133
+ // Don't call expand() directly as there may be additional processing involved before
134
+ // expanding, e.g. in the case of a ComboBox query.
135
+ this.onTriggerClick();
136
+ }
137
+ },
138
+
139
+ /**
140
+ * Expands this field's picker dropdown.
141
+ */
142
+ expand: function() {
143
+ var me = this,
144
+ bodyEl, picker, collapseIf;
145
+
146
+ if (me.rendered && !me.isExpanded && !me.isDestroyed) {
147
+ bodyEl = me.bodyEl;
148
+ picker = me.getPicker();
149
+ collapseIf = me.collapseIf;
150
+
151
+ // show the picker and set isExpanded flag
152
+ picker.show();
153
+ me.isExpanded = true;
154
+ me.alignPicker();
155
+ bodyEl.addCls(me.openCls);
156
+
157
+ // monitor clicking and mousewheel
158
+ me.mon(Ext.getDoc(), {
159
+ mousewheel: collapseIf,
160
+ mousedown: collapseIf,
161
+ scope: me
162
+ });
163
+ Ext.EventManager.onWindowResize(me.alignPicker, me);
164
+ me.fireEvent('expand', me);
165
+ me.onExpand();
166
+ }
167
+ },
168
+
169
+ onExpand: Ext.emptyFn,
170
+
171
+ /**
172
+ * Aligns the picker to the input element
173
+ * @protected
174
+ */
175
+ alignPicker: function() {
176
+ var me = this,
177
+ picker = me.getPicker();
178
+
179
+ if (me.isExpanded) {
180
+ if (me.matchFieldWidth) {
181
+ // Auto the height (it will be constrained by min and max width) unless there are no records to display.
182
+ picker.setWidth(me.bodyEl.getWidth());
183
+ }
184
+ if (picker.isFloating()) {
185
+ me.doAlign();
186
+ }
187
+ }
188
+ },
189
+
190
+ /**
191
+ * Performs the alignment on the picker using the class defaults
192
+ * @private
193
+ */
194
+ doAlign: function(){
195
+ var me = this,
196
+ picker = me.picker,
197
+ aboveSfx = '-above',
198
+ isAbove;
199
+
200
+ me.picker.alignTo(me.inputEl, me.pickerAlign, me.pickerOffset);
201
+ // add the {openCls}-above class if the picker was aligned above
202
+ // the field due to hitting the bottom of the viewport
203
+ isAbove = picker.el.getY() < me.inputEl.getY();
204
+ me.bodyEl[isAbove ? 'addCls' : 'removeCls'](me.openCls + aboveSfx);
205
+ picker[isAbove ? 'addCls' : 'removeCls'](picker.baseCls + aboveSfx);
206
+ },
207
+
208
+ /**
209
+ * Collapses this field's picker dropdown.
210
+ */
211
+ collapse: function() {
212
+ if (this.isExpanded && !this.isDestroyed) {
213
+ var me = this,
214
+ openCls = me.openCls,
215
+ picker = me.picker,
216
+ doc = Ext.getDoc(),
217
+ collapseIf = me.collapseIf,
218
+ aboveSfx = '-above';
219
+
220
+ // hide the picker and set isExpanded flag
221
+ picker.hide();
222
+ me.isExpanded = false;
223
+
224
+ // remove the openCls
225
+ me.bodyEl.removeCls([openCls, openCls + aboveSfx]);
226
+ picker.el.removeCls(picker.baseCls + aboveSfx);
227
+
228
+ // remove event listeners
229
+ doc.un('mousewheel', collapseIf, me);
230
+ doc.un('mousedown', collapseIf, me);
231
+ Ext.EventManager.removeResizeListener(me.alignPicker, me);
232
+ me.fireEvent('collapse', me);
233
+ me.onCollapse();
234
+ }
235
+ },
236
+
237
+ onCollapse: Ext.emptyFn,
238
+
239
+
240
+ /**
241
+ * @private
242
+ * Runs on mousewheel and mousedown of doc to check to see if we should collapse the picker
243
+ */
244
+ collapseIf: function(e) {
245
+ var me = this;
246
+
247
+ if (!me.isDestroyed && !e.within(me.bodyEl, false, true) && !e.within(me.picker.el, false, true) && !me.isEventWithinPickerLoadMask(e)) {
248
+ me.collapse();
249
+ }
250
+ },
251
+
252
+ /**
253
+ * Returns a reference to the picker component for this field, creating it if necessary by
254
+ * calling {@link #createPicker}.
255
+ * @return {Ext.Component} The picker component
256
+ */
257
+ getPicker: function() {
258
+ var me = this;
259
+ return me.picker || (me.picker = me.createPicker());
260
+ },
261
+
262
+ /**
263
+ * @method
264
+ * Creates and returns the component to be used as this field's picker. Must be implemented by subclasses of Picker.
265
+ * The current field should also be passed as a configuration option to the picker component as the pickerField
266
+ * property.
267
+ */
268
+ createPicker: Ext.emptyFn,
269
+
270
+ /**
271
+ * Handles the trigger click; by default toggles between expanding and collapsing the picker component.
272
+ * @protected
273
+ */
274
+ onTriggerClick: function() {
275
+ var me = this;
276
+ if (!me.readOnly && !me.disabled) {
277
+ if (me.isExpanded) {
278
+ me.collapse();
279
+ } else {
280
+ me.expand();
281
+ }
282
+ me.inputEl.focus();
283
+ }
284
+ },
285
+
286
+ mimicBlur: function(e) {
287
+ var me = this,
288
+ picker = me.picker;
289
+ // ignore mousedown events within the picker element
290
+ if (!picker || !e.within(picker.el, false, true) && !me.isEventWithinPickerLoadMask(e)) {
291
+ me.callParent(arguments);
292
+ }
293
+ },
294
+
295
+ onDestroy : function(){
296
+ var me = this,
297
+ picker = me.picker;
298
+
299
+ Ext.EventManager.removeResizeListener(me.alignPicker, me);
300
+ Ext.destroy(me.keyNav);
301
+ if (picker) {
302
+ delete picker.pickerField;
303
+ picker.destroy();
304
+ }
305
+ me.callParent();
306
+ },
307
+
308
+ /**
309
+ * returns true if the picker has a load mask and the passed event is within the load mask
310
+ * @private
311
+ * @param {Ext.EventObject} e
312
+ * @return {Boolean}
313
+ */
314
+ isEventWithinPickerLoadMask: function(e) {
315
+ var loadMask = this.picker.loadMask;
316
+
317
+ return loadMask ? e.within(loadMask.maskEl, false, true) || e.within(loadMask.el, false, true) : false;
318
+ }
319
+
320
+ });
321
+