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,727 @@
1
+ /**
2
+ * @docauthor Jason Johnston <jason@sencha.com>
3
+ *
4
+ * A basic text field. Can be used as a direct replacement for traditional text inputs,
5
+ * or as the base class for more sophisticated input controls (like {@link Ext.form.field.TextArea}
6
+ * and {@link Ext.form.field.ComboBox}). Has support for empty-field placeholder values (see {@link #emptyText}).
7
+ *
8
+ * # Validation
9
+ *
10
+ * The Text field has a useful set of validations built in:
11
+ *
12
+ * - {@link #allowBlank} for making the field required
13
+ * - {@link #minLength} for requiring a minimum value length
14
+ * - {@link #maxLength} for setting a maximum value length (with {@link #enforceMaxLength} to add it
15
+ * as the `maxlength` attribute on the input element)
16
+ * - {@link #regex} to specify a custom regular expression for validation
17
+ *
18
+ * In addition, custom validations may be added:
19
+ *
20
+ * - {@link #vtype} specifies a virtual type implementation from {@link Ext.form.field.VTypes} which can contain
21
+ * custom validation logic
22
+ * - {@link #validator} allows a custom arbitrary function to be called during validation
23
+ *
24
+ * The details around how and when each of these validation options get used are described in the
25
+ * documentation for {@link #getErrors}.
26
+ *
27
+ * By default, the field value is checked for validity immediately while the user is typing in the
28
+ * field. This can be controlled with the {@link #validateOnChange}, {@link #checkChangeEvents}, and
29
+ * {@link #checkChangeBuffer} configurations. Also see the details on Form Validation in the
30
+ * {@link Ext.form.Panel} class documentation.
31
+ *
32
+ * # Masking and Character Stripping
33
+ *
34
+ * Text fields can be configured with custom regular expressions to be applied to entered values before
35
+ * validation: see {@link #maskRe} and {@link #stripCharsRe} for details.
36
+ *
37
+ * # Example usage
38
+ *
39
+ * @example
40
+ * Ext.create('Ext.form.Panel', {
41
+ * title: 'Contact Info',
42
+ * width: 300,
43
+ * bodyPadding: 10,
44
+ * renderTo: Ext.getBody(),
45
+ * items: [{
46
+ * xtype: 'textfield',
47
+ * name: 'name',
48
+ * fieldLabel: 'Name',
49
+ * allowBlank: false // requires a non-empty value
50
+ * }, {
51
+ * xtype: 'textfield',
52
+ * name: 'email',
53
+ * fieldLabel: 'Email Address',
54
+ * vtype: 'email' // requires value to be a valid email address format
55
+ * }]
56
+ * });
57
+ */
58
+ Ext.define('Ext.form.field.Text', {
59
+ extend:'Ext.form.field.Base',
60
+ alias: 'widget.textfield',
61
+ requires: ['Ext.form.field.VTypes', 'Ext.layout.component.field.Text'],
62
+ alternateClassName: ['Ext.form.TextField', 'Ext.form.Text'],
63
+
64
+ /**
65
+ * @cfg {String} vtypeText
66
+ * A custom error message to display in place of the default message provided for the **`{@link #vtype}`** currently
67
+ * set for this field. **Note**: only applies if **`{@link #vtype}`** is set, else ignored.
68
+ */
69
+
70
+ /**
71
+ * @cfg {RegExp} stripCharsRe
72
+ * A JavaScript RegExp object used to strip unwanted content from the value
73
+ * during input. If `stripCharsRe` is specified,
74
+ * every *character sequence* matching `stripCharsRe` will be removed.
75
+ */
76
+
77
+ /**
78
+ * @cfg {Number} size
79
+ * An initial value for the 'size' attribute on the text input element. This is only used if the field has no
80
+ * configured {@link #width} and is not given a width by its container's layout. Defaults to 20.
81
+ */
82
+ size: 20,
83
+
84
+ /**
85
+ * @cfg {Boolean} [grow=false]
86
+ * true if this field should automatically grow and shrink to its content
87
+ */
88
+
89
+ /**
90
+ * @cfg {Number} growMin
91
+ * The minimum width to allow when `{@link #grow} = true`
92
+ */
93
+ growMin : 30,
94
+
95
+ /**
96
+ * @cfg {Number} growMax
97
+ * The maximum width to allow when `{@link #grow} = true`
98
+ */
99
+ growMax : 800,
100
+
101
+ /**
102
+ * @cfg {String} growAppend
103
+ * A string that will be appended to the field's current value for the purposes of calculating the target field
104
+ * size. Only used when the {@link #grow} config is true. Defaults to a single capital "W" (the widest character in
105
+ * common fonts) to leave enough space for the next typed character and avoid the field value shifting before the
106
+ * width is adjusted.
107
+ */
108
+ //<locale>
109
+ growAppend: 'W',
110
+ //</locale>
111
+
112
+ /**
113
+ * @cfg {String} vtype
114
+ * A validation type name as defined in {@link Ext.form.field.VTypes}
115
+ */
116
+
117
+ /**
118
+ * @cfg {RegExp} maskRe An input mask regular expression that will be used to filter keystrokes (character being
119
+ * typed) that do not match.
120
+ * Note: It dose not filter characters already in the input.
121
+ */
122
+
123
+ /**
124
+ * @cfg {Boolean} [disableKeyFilter=false]
125
+ * Specify true to disable input keystroke filtering
126
+ */
127
+
128
+ /**
129
+ * @cfg {Boolean} allowBlank
130
+ * Specify false to validate that the value's length is > 0
131
+ */
132
+ allowBlank : true,
133
+
134
+ /**
135
+ * @cfg {Number} minLength
136
+ * Minimum input field length required
137
+ */
138
+ minLength : 0,
139
+
140
+ /**
141
+ * @cfg {Number} maxLength
142
+ * Maximum input field length allowed by validation. This behavior is intended to
143
+ * provide instant feedback to the user by improving usability to allow pasting and editing or overtyping and back
144
+ * tracking. To restrict the maximum number of characters that can be entered into the field use the
145
+ * **{@link Ext.form.field.Text#enforceMaxLength enforceMaxLength}** option.
146
+ *
147
+ * Defaults to Number.MAX_VALUE.
148
+ */
149
+ maxLength : Number.MAX_VALUE,
150
+
151
+ /**
152
+ * @cfg {Boolean} enforceMaxLength
153
+ * True to set the maxLength property on the underlying input field. Defaults to false
154
+ */
155
+
156
+ /**
157
+ * @cfg {String} minLengthText
158
+ * Error text to display if the **{@link #minLength minimum length}** validation fails.
159
+ */
160
+ //<locale>
161
+ minLengthText : 'The minimum length for this field is {0}',
162
+ //</locale>
163
+
164
+ /**
165
+ * @cfg {String} maxLengthText
166
+ * Error text to display if the **{@link #maxLength maximum length}** validation fails
167
+ */
168
+ //<locale>
169
+ maxLengthText : 'The maximum length for this field is {0}',
170
+ //</locale>
171
+
172
+ /**
173
+ * @cfg {Boolean} [selectOnFocus=false]
174
+ * true to automatically select any existing field text when the field receives input focus
175
+ */
176
+
177
+ /**
178
+ * @cfg {String} blankText
179
+ * The error text to display if the **{@link #allowBlank}** validation fails
180
+ */
181
+ //<locale>
182
+ blankText : 'This field is required',
183
+ //</locale>
184
+
185
+ /**
186
+ * @cfg {Function} validator
187
+ * A custom validation function to be called during field validation ({@link #getErrors}).
188
+ * If specified, this function will be called first, allowing the developer to override the default validation
189
+ * process.
190
+ *
191
+ * This function will be passed the following parameters:
192
+ *
193
+ * @cfg {Object} validator.value The current field value
194
+ * @cfg {Boolean/String} validator.return
195
+ *
196
+ * - True if the value is valid
197
+ * - An error message if the value is invalid
198
+ */
199
+
200
+ /**
201
+ * @cfg {RegExp} regex
202
+ * A JavaScript RegExp object to be tested against the field value during validation.
203
+ * If the test fails, the field will be marked invalid using
204
+ * either **{@link #regexText}** or **{@link #invalidText}**.
205
+ */
206
+
207
+ /**
208
+ * @cfg {String} regexText
209
+ * The error text to display if **{@link #regex}** is used and the test fails during validation
210
+ */
211
+ regexText : '',
212
+
213
+ /**
214
+ * @cfg {String} emptyText
215
+ * The default text to place into an empty field.
216
+ *
217
+ * Note that normally this value will be submitted to the server if this field is enabled; to prevent this you can
218
+ * set the {@link Ext.form.action.Action#submitEmptyText submitEmptyText} option of {@link Ext.form.Basic#submit} to
219
+ * false.
220
+ *
221
+ * Also note that if you use {@link #inputType inputType}:'file', {@link #emptyText} is not supported and should be
222
+ * avoided.
223
+ *
224
+ * Note that for browsers that support it, setting this property will use the HTML 5 placeholder attribute, and for
225
+ * older browsers that don't support the HTML 5 placeholder attribute the value will be placed directly into the input
226
+ * element itself as the raw value. This means that older browsers will obfuscate the {@link #emptyText} value for
227
+ * password input fields.
228
+ */
229
+
230
+ /**
231
+ * @cfg {String} [emptyCls='x-form-empty-field']
232
+ * The CSS class to apply to an empty field to style the **{@link #emptyText}**.
233
+ * This class is automatically added and removed as needed depending on the current field value.
234
+ */
235
+ emptyCls : Ext.baseCSSPrefix + 'form-empty-field',
236
+
237
+ /**
238
+ * @cfg {Boolean} [enableKeyEvents=false]
239
+ * true to enable the proxying of key events for the HTML input field
240
+ */
241
+
242
+ componentLayout: 'textfield',
243
+
244
+ initComponent: function () {
245
+ var me = this;
246
+
247
+ me.callParent();
248
+
249
+ me.addEvents(
250
+ /**
251
+ * @event autosize
252
+ * Fires when the **{@link #autoSize}** function is triggered and the field is resized according to the
253
+ * {@link #grow}/{@link #growMin}/{@link #growMax} configs as a result. This event provides a hook for the
254
+ * developer to apply additional logic at runtime to resize the field if needed.
255
+ * @param {Ext.form.field.Text} this This text field
256
+ * @param {Number} width The new field width
257
+ */
258
+ 'autosize',
259
+
260
+ /**
261
+ * @event keydown
262
+ * Keydown input field event. This event only fires if **{@link #enableKeyEvents}** is set to true.
263
+ * @param {Ext.form.field.Text} this This text field
264
+ * @param {Ext.EventObject} e
265
+ */
266
+ 'keydown',
267
+ /**
268
+ * @event keyup
269
+ * Keyup input field event. This event only fires if **{@link #enableKeyEvents}** is set to true.
270
+ * @param {Ext.form.field.Text} this This text field
271
+ * @param {Ext.EventObject} e
272
+ */
273
+ 'keyup',
274
+ /**
275
+ * @event keypress
276
+ * Keypress input field event. This event only fires if **{@link #enableKeyEvents}** is set to true.
277
+ * @param {Ext.form.field.Text} this This text field
278
+ * @param {Ext.EventObject} e
279
+ */
280
+ 'keypress'
281
+ );
282
+ me.addStateEvents('change');
283
+ me.setGrowSizePolicy();
284
+ },
285
+
286
+ setGrowSizePolicy: function(){
287
+ if (this.grow) {
288
+ this.shrinkWrap |= 1; // width must shrinkWrap
289
+ }
290
+ },
291
+
292
+ // private
293
+ initEvents : function(){
294
+ var me = this,
295
+ el = me.inputEl;
296
+
297
+ me.callParent();
298
+ if(me.selectOnFocus || me.emptyText){
299
+ me.mon(el, 'mousedown', me.onMouseDown, me);
300
+ }
301
+ if(me.maskRe || (me.vtype && me.disableKeyFilter !== true && (me.maskRe = Ext.form.field.VTypes[me.vtype+'Mask']))){
302
+ me.mon(el, 'keypress', me.filterKeys, me);
303
+ }
304
+
305
+ if (me.enableKeyEvents) {
306
+ me.mon(el, {
307
+ scope: me,
308
+ keyup: me.onKeyUp,
309
+ keydown: me.onKeyDown,
310
+ keypress: me.onKeyPress
311
+ });
312
+ }
313
+ },
314
+
315
+ /**
316
+ * @private
317
+ * Override. Treat undefined and null values as equal to an empty string value.
318
+ */
319
+ isEqual: function(value1, value2) {
320
+ return this.isEqualAsString(value1, value2);
321
+ },
322
+
323
+ /**
324
+ * @private
325
+ * If grow=true, invoke the autoSize method when the field's value is changed.
326
+ */
327
+ onChange: function() {
328
+ this.callParent();
329
+ this.autoSize();
330
+ },
331
+
332
+ getSubTplData: function() {
333
+ var me = this,
334
+ value = me.getRawValue(),
335
+ isEmpty = me.emptyText && value.length < 1,
336
+ placeholder;
337
+
338
+ if (isEmpty) {
339
+ if (Ext.supports.Placeholder) {
340
+ placeholder = me.emptyText;
341
+ } else {
342
+ value = me.emptyText;
343
+ }
344
+ }
345
+
346
+ return Ext.apply(me.callParent(), {
347
+ maxLength : me.enforceMaxLength ? me.maxLength : undefined,
348
+ readOnly : me.readOnly,
349
+ placeholder : placeholder,
350
+ value : value,
351
+ fieldCls : me.fieldCls + ((isEmpty && (placeholder || value)) ? ' ' + me.emptyCls : '')
352
+ });
353
+ },
354
+
355
+ afterRender: function(){
356
+ this.autoSize();
357
+ this.callParent();
358
+ },
359
+
360
+ onMouseDown: function(e){
361
+ var me = this;
362
+ if(!me.hasFocus){
363
+ me.mon(me.inputEl, 'mouseup', Ext.emptyFn, me, { single: true, preventDefault: true });
364
+ }
365
+ },
366
+
367
+ /**
368
+ * Performs any necessary manipulation of a raw String value to prepare it for conversion and/or
369
+ * {@link #validate validation}. For text fields this applies the configured {@link #stripCharsRe}
370
+ * to the raw value.
371
+ * @param {String} value The unprocessed string value
372
+ * @return {String} The processed string value
373
+ */
374
+ processRawValue: function(value) {
375
+ var me = this,
376
+ stripRe = me.stripCharsRe,
377
+ newValue;
378
+
379
+ if (stripRe) {
380
+ newValue = value.replace(stripRe, '');
381
+ if (newValue !== value) {
382
+ me.setRawValue(newValue);
383
+ value = newValue;
384
+ }
385
+ }
386
+ return value;
387
+ },
388
+
389
+ //private
390
+ onDisable: function(){
391
+ this.callParent();
392
+ if (Ext.isIE) {
393
+ this.inputEl.dom.unselectable = 'on';
394
+ }
395
+ },
396
+
397
+ //private
398
+ onEnable: function(){
399
+ this.callParent();
400
+ if (Ext.isIE) {
401
+ this.inputEl.dom.unselectable = '';
402
+ }
403
+ },
404
+
405
+ onKeyDown: function(e) {
406
+ this.fireEvent('keydown', this, e);
407
+ },
408
+
409
+ onKeyUp: function(e) {
410
+ this.fireEvent('keyup', this, e);
411
+ },
412
+
413
+ onKeyPress: function(e) {
414
+ this.fireEvent('keypress', this, e);
415
+ },
416
+
417
+ /**
418
+ * Resets the current field value to the originally-loaded value and clears any validation messages.
419
+ * Also adds **{@link #emptyText}** and **{@link #emptyCls}** if the original value was blank.
420
+ */
421
+ reset : function(){
422
+ this.callParent();
423
+ this.applyEmptyText();
424
+ },
425
+
426
+ applyEmptyText : function(){
427
+ var me = this,
428
+ emptyText = me.emptyText,
429
+ isEmpty;
430
+
431
+ if (me.rendered && emptyText) {
432
+ isEmpty = me.getRawValue().length < 1 && !me.hasFocus;
433
+
434
+ if (Ext.supports.Placeholder) {
435
+ me.inputEl.dom.placeholder = emptyText;
436
+ } else if (isEmpty) {
437
+ me.setRawValue(emptyText);
438
+ }
439
+
440
+ //all browsers need this because of a styling issue with chrome + placeholders.
441
+ //the text isnt vertically aligned when empty (and using the placeholder)
442
+ if (isEmpty) {
443
+ me.inputEl.addCls(me.emptyCls);
444
+ }
445
+
446
+ me.autoSize();
447
+ }
448
+ },
449
+
450
+ afterFirstLayout: function() {
451
+ this.callParent();
452
+ if (Ext.isIE && this.disabled) {
453
+ var el = this.inputEl;
454
+ if (el) {
455
+ el.dom.unselectable = 'on';
456
+ }
457
+ }
458
+ },
459
+
460
+ // private
461
+ preFocus : function(){
462
+ var me = this,
463
+ inputEl = me.inputEl,
464
+ emptyText = me.emptyText,
465
+ isEmpty;
466
+
467
+ me.callParent(arguments);
468
+ if (emptyText && !Ext.supports.Placeholder && inputEl.dom.value === emptyText) {
469
+ me.setRawValue('');
470
+ isEmpty = true;
471
+ inputEl.removeCls(me.emptyCls);
472
+ } else if (Ext.supports.Placeholder) {
473
+ me.inputEl.removeCls(me.emptyCls);
474
+ }
475
+ if (me.selectOnFocus || isEmpty) {
476
+ inputEl.dom.select();
477
+ }
478
+ },
479
+
480
+ onFocus: function() {
481
+ var me = this;
482
+ me.callParent(arguments);
483
+ if (me.emptyText) {
484
+ me.autoSize();
485
+ }
486
+ },
487
+
488
+ // private
489
+ postBlur : function(){
490
+ this.callParent(arguments);
491
+ this.applyEmptyText();
492
+ },
493
+
494
+ // private
495
+ filterKeys : function(e){
496
+ /*
497
+ * On European keyboards, the right alt key, Alt Gr, is used to type certain special characters.
498
+ * JS detects a keypress of this as ctrlKey & altKey. As such, we check that alt isn't pressed
499
+ * so we can still process these special characters.
500
+ */
501
+ if (e.ctrlKey && !e.altKey) {
502
+ return;
503
+ }
504
+ var key = e.getKey(),
505
+ charCode = String.fromCharCode(e.getCharCode());
506
+
507
+ if(Ext.isGecko && (e.isNavKeyPress() || key === e.BACKSPACE || (key === e.DELETE && e.button === -1))){
508
+ return;
509
+ }
510
+
511
+ if(!Ext.isGecko && e.isSpecialKey() && !charCode){
512
+ return;
513
+ }
514
+ if(!this.maskRe.test(charCode)){
515
+ e.stopEvent();
516
+ }
517
+ },
518
+
519
+ getState: function() {
520
+ return this.addPropertyToState(this.callParent(), 'value');
521
+ },
522
+
523
+ applyState: function(state) {
524
+ this.callParent(arguments);
525
+ if(state.hasOwnProperty('value')) {
526
+ this.setValue(state.value);
527
+ }
528
+ },
529
+
530
+ /**
531
+ * Returns the raw String value of the field, without performing any normalization, conversion, or validation. Gets
532
+ * the current value of the input element if the field has been rendered, ignoring the value if it is the
533
+ * {@link #emptyText}. To get a normalized and converted value see {@link #getValue}.
534
+ * @return {String} The raw String value of the field
535
+ */
536
+ getRawValue: function() {
537
+ var me = this,
538
+ v = me.callParent();
539
+ if (v === me.emptyText) {
540
+ v = '';
541
+ }
542
+ return v;
543
+ },
544
+
545
+ /**
546
+ * Sets a data value into the field and runs the change detection and validation. Also applies any configured
547
+ * {@link #emptyText} for text fields. To set the value directly without these inspections see {@link #setRawValue}.
548
+ * @param {Object} value The value to set
549
+ * @return {Ext.form.field.Text} this
550
+ */
551
+ setValue: function(value) {
552
+ var me = this,
553
+ inputEl = me.inputEl;
554
+
555
+ if (inputEl && me.emptyText && !Ext.isEmpty(value)) {
556
+ inputEl.removeCls(me.emptyCls);
557
+ }
558
+
559
+ me.callParent(arguments);
560
+
561
+ me.applyEmptyText();
562
+ return me;
563
+ },
564
+
565
+ /**
566
+ * Validates a value according to the field's validation rules and returns an array of errors
567
+ * for any failing validations. Validation rules are processed in the following order:
568
+ *
569
+ * 1. **Field specific validator**
570
+ *
571
+ * A validator offers a way to customize and reuse a validation specification.
572
+ * If a field is configured with a `{@link #validator}`
573
+ * function, it will be passed the current field value. The `{@link #validator}`
574
+ * function is expected to return either:
575
+ *
576
+ * - Boolean `true` if the value is valid (validation continues).
577
+ * - a String to represent the invalid message if invalid (validation halts).
578
+ *
579
+ * 2. **Basic Validation**
580
+ *
581
+ * If the `{@link #validator}` has not halted validation,
582
+ * basic validation proceeds as follows:
583
+ *
584
+ * - `{@link #allowBlank}` : (Invalid message = `{@link #emptyText}`)
585
+ *
586
+ * Depending on the configuration of `{@link #allowBlank}`, a
587
+ * blank field will cause validation to halt at this step and return
588
+ * Boolean true or false accordingly.
589
+ *
590
+ * - `{@link #minLength}` : (Invalid message = `{@link #minLengthText}`)
591
+ *
592
+ * If the passed value does not satisfy the `{@link #minLength}`
593
+ * specified, validation halts.
594
+ *
595
+ * - `{@link #maxLength}` : (Invalid message = `{@link #maxLengthText}`)
596
+ *
597
+ * If the passed value does not satisfy the `{@link #maxLength}`
598
+ * specified, validation halts.
599
+ *
600
+ * 3. **Preconfigured Validation Types (VTypes)**
601
+ *
602
+ * If none of the prior validation steps halts validation, a field
603
+ * configured with a `{@link #vtype}` will utilize the
604
+ * corresponding {@link Ext.form.field.VTypes VTypes} validation function.
605
+ * If invalid, either the field's `{@link #vtypeText}` or
606
+ * the VTypes vtype Text property will be used for the invalid message.
607
+ * Keystrokes on the field will be filtered according to the VTypes
608
+ * vtype Mask property.
609
+ *
610
+ * 4. **Field specific regex test**
611
+ *
612
+ * If none of the prior validation steps halts validation, a field's
613
+ * configured `{@link #regex}` test will be processed.
614
+ * The invalid message for this test is configured with `{@link #regexText}`
615
+ *
616
+ * @param {Object} value The value to validate. The processed raw value will be used if nothing is passed.
617
+ * @return {String[]} Array of any validation errors
618
+ */
619
+ getErrors: function(value) {
620
+ var me = this,
621
+ errors = me.callParent(arguments),
622
+ validator = me.validator,
623
+ emptyText = me.emptyText,
624
+ allowBlank = me.allowBlank,
625
+ vtype = me.vtype,
626
+ vtypes = Ext.form.field.VTypes,
627
+ regex = me.regex,
628
+ format = Ext.String.format,
629
+ msg;
630
+
631
+ value = value || me.processRawValue(me.getRawValue());
632
+
633
+ if (Ext.isFunction(validator)) {
634
+ msg = validator.call(me, value);
635
+ if (msg !== true) {
636
+ errors.push(msg);
637
+ }
638
+ }
639
+
640
+ if (value.length < 1 || value === emptyText) {
641
+ if (!allowBlank) {
642
+ errors.push(me.blankText);
643
+ }
644
+ //if value is blank, there cannot be any additional errors
645
+ return errors;
646
+ }
647
+
648
+ if (value.length < me.minLength) {
649
+ errors.push(format(me.minLengthText, me.minLength));
650
+ }
651
+
652
+ if (value.length > me.maxLength) {
653
+ errors.push(format(me.maxLengthText, me.maxLength));
654
+ }
655
+
656
+ if (vtype) {
657
+ if(!vtypes[vtype](value, me)){
658
+ errors.push(me.vtypeText || vtypes[vtype +'Text']);
659
+ }
660
+ }
661
+
662
+ if (regex && !regex.test(value)) {
663
+ errors.push(me.regexText || me.invalidText);
664
+ }
665
+
666
+ return errors;
667
+ },
668
+
669
+ /**
670
+ * Selects text in this field
671
+ * @param {Number} [start=0] The index where the selection should start
672
+ * @param {Number} [end] The index where the selection should end (defaults to the text length)
673
+ */
674
+ selectText : function(start, end){
675
+ var me = this,
676
+ v = me.getRawValue(),
677
+ doFocus = true,
678
+ el = me.inputEl.dom,
679
+ undef,
680
+ range;
681
+
682
+ if (v.length > 0) {
683
+ start = start === undef ? 0 : start;
684
+ end = end === undef ? v.length : end;
685
+ if (el.setSelectionRange) {
686
+ el.setSelectionRange(start, end);
687
+ }
688
+ else if(el.createTextRange) {
689
+ range = el.createTextRange();
690
+ range.moveStart('character', start);
691
+ range.moveEnd('character', end - v.length);
692
+ range.select();
693
+ }
694
+ doFocus = Ext.isGecko || Ext.isOpera;
695
+ }
696
+ if (doFocus) {
697
+ me.focus();
698
+ }
699
+ },
700
+
701
+ /**
702
+ * Automatically grows the field to accomodate the width of the text up to the maximum field width allowed. This
703
+ * only takes effect if {@link #grow} = true, and fires the {@link #autosize} event if the width changes.
704
+ */
705
+ autoSize: function() {
706
+ var me = this;
707
+ if (me.grow && me.rendered) {
708
+ me.autoSizing = true;
709
+ me.updateLayout();
710
+ }
711
+ },
712
+
713
+ afterComponentLayout: function() {
714
+ var me = this,
715
+ width;
716
+
717
+ me.callParent(arguments);
718
+ if (me.autoSizing) {
719
+ width = me.inputEl.getWidth();
720
+ if (width !== me.lastInputWidth) {
721
+ me.fireEvent('autosize', me, width);
722
+ me.lastInputWidth = width;
723
+ delete me.autoSizing;
724
+ }
725
+ }
726
+ }
727
+ });