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,228 @@
1
+ /**
2
+ * @docauthor Robert Dougan <rob@sencha.com>
3
+ *
4
+ * This class creates a multiline text field, which can be used as a direct replacement for traditional
5
+ * textarea fields. In addition, it supports automatically {@link #grow growing} the height of the textarea to
6
+ * fit its content.
7
+ *
8
+ * All of the configuration options from {@link Ext.form.field.Text} can be used on TextArea.
9
+ *
10
+ * Example usage:
11
+ *
12
+ * @example
13
+ * Ext.create('Ext.form.FormPanel', {
14
+ * title : 'Sample TextArea',
15
+ * width : 400,
16
+ * bodyPadding: 10,
17
+ * renderTo : Ext.getBody(),
18
+ * items: [{
19
+ * xtype : 'textareafield',
20
+ * grow : true,
21
+ * name : 'message',
22
+ * fieldLabel: 'Message',
23
+ * anchor : '100%'
24
+ * }]
25
+ * });
26
+ *
27
+ * Some other useful configuration options when using {@link #grow} are {@link #growMin} and {@link #growMax}.
28
+ * These allow you to set the minimum and maximum grow heights for the textarea.
29
+ */
30
+ Ext.define('Ext.form.field.TextArea', {
31
+ extend:'Ext.form.field.Text',
32
+ alias: ['widget.textareafield', 'widget.textarea'],
33
+ alternateClassName: 'Ext.form.TextArea',
34
+ requires: [
35
+ 'Ext.XTemplate',
36
+ 'Ext.layout.component.field.TextArea',
37
+ 'Ext.util.DelayedTask'
38
+ ],
39
+
40
+ // This template includes a \n after <textarea> opening tag so that an initial value starting
41
+ // with \n does not lose its first character when the markup is parsed.
42
+ // Both textareas below have the same value:
43
+ // <textarea>initial value</textarea>
44
+ // <textarea>
45
+ // initial value
46
+ // </textarea>
47
+ fieldSubTpl: [
48
+ '<textarea id="{id}" {inputAttrTpl}',
49
+ '<tpl if="name"> name="{name}"</tpl>',
50
+ '<tpl if="rows"> rows="{rows}" </tpl>',
51
+ '<tpl if="cols"> cols="{cols}" </tpl>',
52
+ '<tpl if="placeholder"> placeholder="{placeholder}"</tpl>',
53
+ '<tpl if="size"> size="{size}"</tpl>',
54
+ '<tpl if="maxLength !== undefined"> maxlength="{maxLength}"</tpl>',
55
+ '<tpl if="readOnly"> readonly="readonly"</tpl>',
56
+ '<tpl if="disabled"> disabled="disabled"</tpl>',
57
+ '<tpl if="tabIdx"> tabIndex="{tabIdx}"</tpl>',
58
+ ' class="{fieldCls} {typeCls}" ',
59
+ '<tpl if="fieldStyle"> style="{fieldStyle}"</tpl>',
60
+ ' autocomplete="off">\n',
61
+ '<tpl if="value">{[Ext.util.Format.htmlEncode(values.value)]}</tpl>',
62
+ '</textarea>',
63
+ {
64
+ disableFormats: true
65
+ }
66
+ ],
67
+
68
+ /**
69
+ * @cfg {Number} growMin
70
+ * The minimum height to allow when {@link #grow}=true
71
+ */
72
+ growMin: 60,
73
+
74
+ /**
75
+ * @cfg {Number} growMax
76
+ * The maximum height to allow when {@link #grow}=true
77
+ */
78
+ growMax: 1000,
79
+
80
+ /**
81
+ * @cfg {String} growAppend
82
+ * A string that will be appended to the field's current value for the purposes of calculating the target field
83
+ * size. Only used when the {@link #grow} config is true. Defaults to a newline for TextArea to ensure there is
84
+ * always a space below the current line.
85
+ */
86
+ growAppend: '\n-',
87
+
88
+ /**
89
+ * @cfg {Number} cols
90
+ * An initial value for the 'cols' attribute on the textarea element. This is only used if the component has no
91
+ * configured {@link #width} and is not given a width by its container's layout.
92
+ */
93
+ cols: 20,
94
+
95
+ /**
96
+ * @cfg {Number} rows
97
+ * An initial value for the 'rows' attribute on the textarea element. This is only used if the component has no
98
+ * configured {@link #height} and is not given a height by its container's layout. Defaults to 4.
99
+ */
100
+ rows: 4,
101
+
102
+ /**
103
+ * @cfg {Boolean} enterIsSpecial
104
+ * True if you want the ENTER key to be classed as a special key and the {@link #specialkey} event to be fired
105
+ * when ENTER is pressed.
106
+ */
107
+ enterIsSpecial: false,
108
+
109
+ /**
110
+ * @cfg {Boolean} preventScrollbars
111
+ * true to prevent scrollbars from appearing regardless of how much text is in the field. This option is only
112
+ * relevant when {@link #grow} is true. Equivalent to setting overflow: hidden.
113
+ */
114
+ preventScrollbars: false,
115
+
116
+ // private
117
+ componentLayout: 'textareafield',
118
+
119
+ setGrowSizePolicy: Ext.emptyFn,
120
+
121
+ // private
122
+ getSubTplData: function() {
123
+ var me = this,
124
+ fieldStyle = me.getFieldStyle(),
125
+ ret = me.callParent();
126
+
127
+ if (me.grow) {
128
+ if (me.preventScrollbars) {
129
+ ret.fieldStyle = (fieldStyle||'') + ';overflow:hidden;height:' + me.growMin + 'px';
130
+ }
131
+ }
132
+
133
+ Ext.applyIf(ret, {
134
+ cols: me.cols,
135
+ rows: me.rows
136
+ });
137
+
138
+ return ret;
139
+ },
140
+
141
+ afterRender: function () {
142
+ var me = this;
143
+
144
+ me.callParent(arguments);
145
+
146
+ me.needsMaxCheck = me.enforceMaxLength && !Ext.supports.TextAreaMaxLength;
147
+ if (me.needsMaxCheck) {
148
+ me.inputEl.on('paste', me.onPaste, me);
149
+ }
150
+ },
151
+
152
+ onPaste: function(e){
153
+ var me = this;
154
+ if (!me.pasteTask) {
155
+ me.pasteTask = new Ext.util.DelayedTask(me.pasteCheck, me);
156
+ }
157
+ // since we can't get the paste data, we'll give the area a chance to populate
158
+ me.pasteTask.delay(1);
159
+ },
160
+
161
+ pasteCheck: function(){
162
+ var me = this,
163
+ value = me.getValue(),
164
+ max = me.maxLength;
165
+
166
+ if (value.length > max) {
167
+ value = value.substr(0, max);
168
+ me.setValue(value);
169
+ }
170
+ },
171
+
172
+ // private
173
+ fireKey: function(e) {
174
+ var me = this,
175
+ value;
176
+
177
+ if (e.isSpecialKey() && (me.enterIsSpecial || (e.getKey() !== e.ENTER || e.hasModifier()))) {
178
+ me.fireEvent('specialkey', me, e);
179
+ }
180
+
181
+ if (me.needsMaxCheck && e.getKey() !== e.BACKSPACE && !e.isNavKeyPress()) {
182
+ value = me.getValue();
183
+ if (value.length >= me.maxLength) {
184
+ e.stopEvent();
185
+ }
186
+ }
187
+ },
188
+
189
+ /**
190
+ * Automatically grows the field to accomodate the height of the text up to the maximum field height allowed. This
191
+ * only takes effect if {@link #grow} = true, and fires the {@link #autosize} event if the height changes.
192
+ */
193
+ autoSize: function() {
194
+ var me = this,
195
+ height;
196
+
197
+ if (me.grow && me.rendered) {
198
+ me.updateLayout();
199
+ height = me.inputEl.getHeight();
200
+ if (height !== me.lastInputHeight) {
201
+ /**
202
+ * @event autosize
203
+ * Fires when the {@link #autoSize} function is triggered and the field is resized according to
204
+ * the grow/growMin/growMax configs as a result. This event provides a hook for the developer
205
+ * to apply additional logic at runtime to resize the field if needed.
206
+ * @param {Ext.form.field.Text} this
207
+ * @param {Number} height
208
+ */
209
+ me.fireEvent('autosize', me, height);
210
+ me.lastInputHeight = height;
211
+ }
212
+ }
213
+ },
214
+
215
+ // private
216
+ initAria: function() {
217
+ this.callParent(arguments);
218
+ this.getActionEl().dom.setAttribute('aria-multiline', true);
219
+ },
220
+
221
+ beforeDestroy: function(){
222
+ var task = this.pasteTask;
223
+ if (task) {
224
+ task.delay();
225
+ }
226
+ this.callParent();
227
+ }
228
+ });
@@ -0,0 +1,459 @@
1
+ /**
2
+ * Provides a time input field with a time dropdown and automatic time validation.
3
+ *
4
+ * This field recognizes and uses JavaScript Date objects as its main {@link #value} type (only the time portion of the
5
+ * date is used; the month/day/year are ignored). In addition, it recognizes string values which are parsed according to
6
+ * the {@link #format} and/or {@link #altFormats} configs. These may be reconfigured to use time formats appropriate for
7
+ * the user's locale.
8
+ *
9
+ * The field may be limited to a certain range of times by using the {@link #minValue} and {@link #maxValue} configs,
10
+ * and the interval between time options in the dropdown can be changed with the {@link #increment} config.
11
+ *
12
+ * Example usage:
13
+ *
14
+ * @example
15
+ * Ext.create('Ext.form.Panel', {
16
+ * title: 'Time Card',
17
+ * width: 300,
18
+ * bodyPadding: 10,
19
+ * renderTo: Ext.getBody(),
20
+ * items: [{
21
+ * xtype: 'timefield',
22
+ * name: 'in',
23
+ * fieldLabel: 'Time In',
24
+ * minValue: '6:00 AM',
25
+ * maxValue: '8:00 PM',
26
+ * increment: 30,
27
+ * anchor: '100%'
28
+ * }, {
29
+ * xtype: 'timefield',
30
+ * name: 'out',
31
+ * fieldLabel: 'Time Out',
32
+ * minValue: '6:00 AM',
33
+ * maxValue: '8:00 PM',
34
+ * increment: 30,
35
+ * anchor: '100%'
36
+ * }]
37
+ * });
38
+ */
39
+ Ext.define('Ext.form.field.Time', {
40
+ extend:'Ext.form.field.ComboBox',
41
+ alias: 'widget.timefield',
42
+ requires: ['Ext.form.field.Date', 'Ext.picker.Time', 'Ext.view.BoundListKeyNav', 'Ext.Date'],
43
+ alternateClassName: ['Ext.form.TimeField', 'Ext.form.Time'],
44
+
45
+ /**
46
+ * @cfg {String} [triggerCls='x-form-time-trigger']
47
+ * An additional CSS class used to style the trigger button. The trigger will always get the {@link #triggerBaseCls}
48
+ * by default and triggerCls will be **appended** if specified.
49
+ */
50
+ triggerCls: Ext.baseCSSPrefix + 'form-time-trigger',
51
+
52
+ /**
53
+ * @cfg {Date/String} minValue
54
+ * The minimum allowed time. Can be either a Javascript date object with a valid time value or a string time in a
55
+ * valid format -- see {@link #format} and {@link #altFormats}.
56
+ */
57
+
58
+ /**
59
+ * @cfg {Date/String} maxValue
60
+ * The maximum allowed time. Can be either a Javascript date object with a valid time value or a string time in a
61
+ * valid format -- see {@link #format} and {@link #altFormats}.
62
+ */
63
+
64
+ /**
65
+ * @cfg {String} minText
66
+ * The error text to display when the entered time is before {@link #minValue}.
67
+ */
68
+ //<locale>
69
+ minText : "The time in this field must be equal to or after {0}",
70
+ //</locale>
71
+
72
+ /**
73
+ * @cfg {String} maxText
74
+ * The error text to display when the entered time is after {@link #maxValue}.
75
+ */
76
+ //<locale>
77
+ maxText : "The time in this field must be equal to or before {0}",
78
+ //</locale>
79
+
80
+ /**
81
+ * @cfg {String} invalidText
82
+ * The error text to display when the time in the field is invalid.
83
+ */
84
+ //<locale>
85
+ invalidText : "{0} is not a valid time",
86
+ //</locale>
87
+
88
+ /**
89
+ * @cfg {String} [format=undefined]
90
+ * The default time format string which can be overriden for localization support. The format must be valid
91
+ * according to {@link Ext.Date#parse}.
92
+ *
93
+ * Defaults to `'g:i A'`, e.g., `'3:15 PM'`. For 24-hour time format try `'H:i'` instead.
94
+ */
95
+ //<locale>
96
+ format : "g:i A",
97
+ //</locale>
98
+
99
+ /**
100
+ * @cfg {String} [submitFormat=undefined]
101
+ * The date format string which will be submitted to the server. The format must be valid according to
102
+ * {@link Ext.Date#parse}.
103
+ *
104
+ * Defaults to {@link #format}.
105
+ */
106
+ //<locale>
107
+ submitFormat: 'g:i A',
108
+ //</locale>
109
+
110
+ /**
111
+ * @cfg {String} altFormats
112
+ * Multiple date formats separated by "|" to try when parsing a user input value and it doesn't match the defined
113
+ * format.
114
+ */
115
+ //<locale>
116
+ altFormats : "g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H|gi a|hi a|giA|hiA|gi A|hi A",
117
+ //</locale>
118
+
119
+ /**
120
+ * @cfg {Number} increment
121
+ * The number of minutes between each time value in the list.
122
+ */
123
+ increment: 15,
124
+
125
+ /**
126
+ * @cfg {Number} pickerMaxHeight
127
+ * The maximum height of the {@link Ext.picker.Time} dropdown.
128
+ */
129
+ pickerMaxHeight: 300,
130
+
131
+ /**
132
+ * @cfg {Boolean} selectOnTab
133
+ * Whether the Tab key should select the currently highlighted item.
134
+ */
135
+ selectOnTab: true,
136
+
137
+ /**
138
+ * @cfg {Boolean} [snapToIncrement=false]
139
+ * Specify as `true` to enforce that only values on the {@link #increment} boundary are accepted.
140
+ */
141
+ snapToIncrement: false,
142
+
143
+ /**
144
+ * @private
145
+ * This is the date to use when generating time values in the absence of either minValue
146
+ * or maxValue. Using the current date causes DST issues on DST boundary dates, so this is an
147
+ * arbitrary "safe" date that can be any date aside from DST boundary dates.
148
+ */
149
+ initDate: '1/1/2008',
150
+ initDateFormat: 'j/n/Y',
151
+
152
+ ignoreSelection: 0,
153
+
154
+ queryMode: 'local',
155
+
156
+ displayField: 'disp',
157
+
158
+ valueField: 'date',
159
+
160
+ initComponent: function() {
161
+ var me = this,
162
+ min = me.minValue,
163
+ max = me.maxValue;
164
+ if (min) {
165
+ me.setMinValue(min);
166
+ }
167
+ if (max) {
168
+ me.setMaxValue(max);
169
+ }
170
+ me.displayTpl = new Ext.XTemplate(
171
+ '<tpl for=".">' +
172
+ '{[typeof values === "string" ? values : this.formatDate(values["' + me.displayField + '"])]}' +
173
+ '<tpl if="xindex < xcount">' + me.delimiter + '</tpl>' +
174
+ '</tpl>', {
175
+ formatDate: Ext.Function.bind(me.formatDate, me)
176
+ });
177
+ this.callParent();
178
+ },
179
+
180
+ /**
181
+ * Replaces any existing {@link #minValue} with the new time and refreshes the picker's range.
182
+ * @param {Date/String} value The minimum time that can be selected
183
+ */
184
+ setMinValue: function(value) {
185
+ var me = this,
186
+ picker = me.picker;
187
+ me.setLimit(value, true);
188
+ if (picker) {
189
+ picker.setMinValue(me.minValue);
190
+ }
191
+ },
192
+
193
+ /**
194
+ * Replaces any existing {@link #maxValue} with the new time and refreshes the picker's range.
195
+ * @param {Date/String} value The maximum time that can be selected
196
+ */
197
+ setMaxValue: function(value) {
198
+ var me = this,
199
+ picker = me.picker;
200
+ me.setLimit(value, false);
201
+ if (picker) {
202
+ picker.setMaxValue(me.maxValue);
203
+ }
204
+ },
205
+
206
+ /**
207
+ * @private
208
+ * Updates either the min or max value. Converts the user's value into a Date object whose
209
+ * year/month/day is set to the {@link #initDate} so that only the time fields are significant.
210
+ */
211
+ setLimit: function(value, isMin) {
212
+ var me = this,
213
+ d, val;
214
+ if (Ext.isString(value)) {
215
+ d = me.parseDate(value);
216
+ }
217
+ else if (Ext.isDate(value)) {
218
+ d = value;
219
+ }
220
+ if (d) {
221
+ val = Ext.Date.clearTime(new Date(me.initDate));
222
+ val.setHours(d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());
223
+ }
224
+ // Invalid min/maxValue config should result in a null so that defaulting takes over
225
+ else {
226
+ val = null;
227
+ }
228
+ me[isMin ? 'minValue' : 'maxValue'] = val;
229
+ },
230
+
231
+ rawToValue: function(rawValue) {
232
+ return this.parseDate(rawValue) || rawValue || null;
233
+ },
234
+
235
+ valueToRaw: function(value) {
236
+ return this.formatDate(this.parseDate(value));
237
+ },
238
+
239
+ /**
240
+ * Runs all of Time's validations and returns an array of any errors. Note that this first runs Text's validations,
241
+ * so the returned array is an amalgamation of all field errors. The additional validation checks are testing that
242
+ * the time format is valid, that the chosen time is within the {@link #minValue} and {@link #maxValue} constraints
243
+ * set.
244
+ * @param {Object} [value] The value to get errors for (defaults to the current field value)
245
+ * @return {String[]} All validation errors for this field
246
+ */
247
+ getErrors: function(value) {
248
+ var me = this,
249
+ format = Ext.String.format,
250
+ errors = me.callParent(arguments),
251
+ minValue = me.minValue,
252
+ maxValue = me.maxValue,
253
+ date;
254
+
255
+ value = me.formatDate(value || me.processRawValue(me.getRawValue()));
256
+
257
+ if (value === null || value.length < 1) { // if it's blank and textfield didn't flag it then it's valid
258
+ return errors;
259
+ }
260
+
261
+ date = me.parseDate(value);
262
+ if (!date) {
263
+ errors.push(format(me.invalidText, value, Ext.Date.unescapeFormat(me.format)));
264
+ return errors;
265
+ }
266
+
267
+ if (minValue && date < minValue) {
268
+ errors.push(format(me.minText, me.formatDate(minValue)));
269
+ }
270
+
271
+ if (maxValue && date > maxValue) {
272
+ errors.push(format(me.maxText, me.formatDate(maxValue)));
273
+ }
274
+
275
+ return errors;
276
+ },
277
+
278
+ formatDate: function() {
279
+ return Ext.form.field.Date.prototype.formatDate.apply(this, arguments);
280
+ },
281
+
282
+ /**
283
+ * @private
284
+ * Parses an input value into a valid Date object.
285
+ * @param {String/Date} value
286
+ */
287
+ parseDate: function(value) {
288
+ var me = this,
289
+ val = value,
290
+ altFormats = me.altFormats,
291
+ altFormatsArray = me.altFormatsArray,
292
+ i = 0,
293
+ len;
294
+
295
+ if (value && !Ext.isDate(value)) {
296
+ val = me.safeParse(value, me.format);
297
+
298
+ if (!val && altFormats) {
299
+ altFormatsArray = altFormatsArray || altFormats.split('|');
300
+ len = altFormatsArray.length;
301
+ for (; i < len && !val; ++i) {
302
+ val = me.safeParse(value, altFormatsArray[i]);
303
+ }
304
+ }
305
+ }
306
+
307
+ // If configured to snap, snap resulting parsed Date to the closest increment.
308
+ if (val && me.snapToIncrement) {
309
+ val = new Date(Ext.Number.snap(val.getTime(), me.increment * 60 * 1000));
310
+ }
311
+ return val;
312
+ },
313
+
314
+ safeParse: function(value, format){
315
+ var me = this,
316
+ utilDate = Ext.Date,
317
+ parsedDate,
318
+ result = null;
319
+
320
+ if (utilDate.formatContainsDateInfo(format)) {
321
+ // assume we've been given a full date
322
+ result = utilDate.parse(value, format);
323
+ } else {
324
+ // Use our initial safe date
325
+ parsedDate = utilDate.parse(me.initDate + ' ' + value, me.initDateFormat + ' ' + format);
326
+ if (parsedDate) {
327
+ result = parsedDate;
328
+ }
329
+ }
330
+ return result;
331
+ },
332
+
333
+ // @private
334
+ getSubmitValue: function() {
335
+ var me = this,
336
+ format = me.submitFormat || me.format,
337
+ value = me.getValue();
338
+
339
+ return value ? Ext.Date.format(value, format) : null;
340
+ },
341
+
342
+ /**
343
+ * @private
344
+ * Creates the {@link Ext.picker.Time}
345
+ */
346
+ createPicker: function() {
347
+ var me = this,
348
+ picker;
349
+
350
+ me.listConfig = Ext.apply({
351
+ xtype: 'timepicker',
352
+ selModel: {
353
+ mode: 'SINGLE'
354
+ },
355
+ cls: undefined,
356
+ minValue: me.minValue,
357
+ maxValue: me.maxValue,
358
+ increment: me.increment,
359
+ format: me.format,
360
+ maxHeight: me.pickerMaxHeight
361
+ }, me.listConfig);
362
+ picker = me.callParent();
363
+ me.store = picker.store;
364
+ return picker;
365
+ },
366
+
367
+ onItemClick: function(picker, record){
368
+ // The selection change events won't fire when clicking on the selected element. Detect it here.
369
+ var me = this,
370
+ selected = picker.getSelectionModel().getSelection();
371
+
372
+ if (selected.length > 0) {
373
+ selected = selected[0];
374
+ if (selected && Ext.Date.isEqual(record.get('date'), selected.get('date'))) {
375
+ me.collapse();
376
+ }
377
+ }
378
+ },
379
+
380
+ /**
381
+ * @private
382
+ * Handles a time being selected from the Time picker.
383
+ */
384
+ onListSelectionChange: function(list, recordArray) {
385
+ var me = this,
386
+ record = recordArray[0],
387
+ val = record ? record.get('date') : null;
388
+
389
+ if (!me.ignoreSelection) {
390
+ me.skipSync = true;
391
+ me.setValue(val);
392
+ me.skipSync = false;
393
+ me.fireEvent('select', me, val);
394
+ me.picker.clearHighlight();
395
+ me.collapse();
396
+ me.inputEl.focus();
397
+ }
398
+ },
399
+
400
+ /**
401
+ * @private
402
+ * Synchronizes the selection in the picker to match the current value
403
+ */
404
+ syncSelection: function() {
405
+ var me = this,
406
+ picker = me.picker,
407
+ toSelect,
408
+ selModel,
409
+ value,
410
+ data, d, dLen, rec;
411
+
412
+ if (picker && !me.skipSync) {
413
+ picker.clearHighlight();
414
+ value = me.getValue();
415
+ selModel = picker.getSelectionModel();
416
+ // Update the selection to match
417
+ me.ignoreSelection++;
418
+ if (value === null) {
419
+ selModel.deselectAll();
420
+ } else if(Ext.isDate(value)) {
421
+ // find value, select it
422
+ data = picker.store.data.items;
423
+ dLen = data.length;
424
+
425
+ for (d = 0; d < dLen; d++) {
426
+ rec = data[d];
427
+
428
+ if (Ext.Date.isEqual(rec.get('date'), value)) {
429
+ toSelect = rec;
430
+ break;
431
+ }
432
+ }
433
+
434
+ selModel.select(toSelect);
435
+ }
436
+ me.ignoreSelection--;
437
+ }
438
+ },
439
+
440
+ postBlur: function() {
441
+ var me = this;
442
+
443
+ me.callParent(arguments);
444
+ me.setRawValue(me.formatDate(me.getValue()));
445
+ },
446
+
447
+ setValue: function(v) {
448
+
449
+ // Store MUST be created for parent setValue to function
450
+ this.getPicker();
451
+
452
+ this.callParent([this.parseDate(v)]);
453
+ },
454
+
455
+ getValue: function() {
456
+ var val = this.callParent(arguments);
457
+ return this.parseDate(val);
458
+ }
459
+ });