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.
- data/.gitignore +18 -0
- data/Gemfile +4 -0
- data/LICENSE +36 -0
- data/README.md +29 -0
- data/Rakefile +2 -0
- data/app/assets/javascripts/extjs-rails/extjs-rails.js +1 -0
- data/app/assets/javascripts/extjs-rails/index.js.erb +9 -0
- data/app/assets/javascripts/extjs-rails/sdk.jsb3 +2017 -0
- data/app/assets/javascripts/extjs-rails/src/AbstractComponent.js +3290 -0
- data/app/assets/javascripts/extjs-rails/src/AbstractManager.js +144 -0
- data/app/assets/javascripts/extjs-rails/src/AbstractPlugin.js +72 -0
- data/app/assets/javascripts/extjs-rails/src/Action.js +276 -0
- data/app/assets/javascripts/extjs-rails/src/Ajax.js +99 -0
- data/app/assets/javascripts/extjs-rails/src/Component.js +1344 -0
- data/app/assets/javascripts/extjs-rails/src/ComponentLoader.js +202 -0
- data/app/assets/javascripts/extjs-rails/src/ComponentManager.js +47 -0
- data/app/assets/javascripts/extjs-rails/src/ComponentQuery.js +521 -0
- data/app/assets/javascripts/extjs-rails/src/Editor.js +494 -0
- data/app/assets/javascripts/extjs-rails/src/ElementLoader.js +404 -0
- data/app/assets/javascripts/extjs-rails/src/FocusManager.js +712 -0
- data/app/assets/javascripts/extjs-rails/src/Img.js +111 -0
- data/app/assets/javascripts/extjs-rails/src/Layer.js +543 -0
- data/app/assets/javascripts/extjs-rails/src/LoadMask.js +432 -0
- data/app/assets/javascripts/extjs-rails/src/ModelManager.js +186 -0
- data/app/assets/javascripts/extjs-rails/src/PluginManager.js +110 -0
- data/app/assets/javascripts/extjs-rails/src/ProgressBar.js +336 -0
- data/app/assets/javascripts/extjs-rails/src/Shadow.js +233 -0
- data/app/assets/javascripts/extjs-rails/src/ShadowPool.js +43 -0
- data/app/assets/javascripts/extjs-rails/src/Template.js +331 -0
- data/app/assets/javascripts/extjs-rails/src/XTemplate.js +365 -0
- data/app/assets/javascripts/extjs-rails/src/XTemplateCompiler.js +450 -0
- data/app/assets/javascripts/extjs-rails/src/XTemplateParser.js +249 -0
- data/app/assets/javascripts/extjs-rails/src/ZIndexManager.js +519 -0
- data/app/assets/javascripts/extjs-rails/src/app/Application.js +271 -0
- data/app/assets/javascripts/extjs-rails/src/app/Controller.js +458 -0
- data/app/assets/javascripts/extjs-rails/src/app/EventBus.js +112 -0
- data/app/assets/javascripts/extjs-rails/src/button/Button.js +1483 -0
- data/app/assets/javascripts/extjs-rails/src/button/Cycle.js +215 -0
- data/app/assets/javascripts/extjs-rails/src/button/Split.js +99 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Callout.js +140 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Chart.js +966 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Highlight.js +172 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Label.js +241 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Legend.js +474 -0
- data/app/assets/javascripts/extjs-rails/src/chart/LegendItem.js +217 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Mask.js +230 -0
- data/app/assets/javascripts/extjs-rails/src/chart/MaskLayer.js +48 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Navigation.js +79 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Shape.js +106 -0
- data/app/assets/javascripts/extjs-rails/src/chart/Tip.js +98 -0
- data/app/assets/javascripts/extjs-rails/src/chart/TipSurface.js +42 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Abstract.js +73 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Axis.js +961 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Category.js +130 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Gauge.js +203 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Numeric.js +235 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Radial.js +204 -0
- data/app/assets/javascripts/extjs-rails/src/chart/axis/Time.js +135 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Area.js +803 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Bar.js +853 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Cartesian.js +328 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Column.js +104 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Gauge.js +490 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Line.js +1104 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Pie.js +1072 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Radar.js +440 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Scatter.js +668 -0
- data/app/assets/javascripts/extjs-rails/src/chart/series/Series.js +443 -0
- data/app/assets/javascripts/extjs-rails/src/chart/theme/Base.js +175 -0
- data/app/assets/javascripts/extjs-rails/src/chart/theme/Theme.js +253 -0
- data/app/assets/javascripts/extjs-rails/src/container/AbstractContainer.js +1062 -0
- data/app/assets/javascripts/extjs-rails/src/container/ButtonGroup.js +143 -0
- data/app/assets/javascripts/extjs-rails/src/container/Container.js +212 -0
- data/app/assets/javascripts/extjs-rails/src/container/DockingContainer.js +265 -0
- data/app/assets/javascripts/extjs-rails/src/container/Viewport.js +184 -0
- data/app/assets/javascripts/extjs-rails/src/core/dom/Element.form.js +50 -0
- data/app/assets/javascripts/extjs-rails/src/core/dom/Element.static-more.js +159 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/index.html +321 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/index.js +6 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/CTO.js +25 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/CoolGuy.js +20 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Developer.js +43 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Gun.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/HumanResource.js +23 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Musician.js +20 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/Person.js +50 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanComposeSongs.js +9 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanPlayGuitar.js +9 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/ability/CanSing.js +18 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/A.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/B.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/C.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/D.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/deadlock/E.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/A.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/B.js +4 -0
- data/app/assets/javascripts/extjs-rails/src/core/examples/src/Sample/notdeadlock/C.js +3 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/EventManager.js +1167 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/EventObject.js +883 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/Ext-more.js +1283 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/Ext.js +736 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/Support.js +662 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/class/Base.js +1085 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/class/Class.js +676 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/class/ClassManager.js +1591 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/class/Loader.js +1423 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.alignment.js +173 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.insertion.js +193 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.js +681 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.position.js +356 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.static.js +474 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.style.js +851 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractElement.traversal.js +180 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractHelper.js +291 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/AbstractQuery.js +72 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/CompositeElement.js +75 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/CompositeElementLite.js +436 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/dom/DomQuery-aria.js +1049 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/env/Browser.js +186 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/env/FeatureDetector.js +274 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/env/OS.js +141 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/Array.js +1205 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/Date.js +1463 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/Error.js +326 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/Function.js +485 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/Number.js +175 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/Object.js +606 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/lang/String.js +333 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/misc/JSON.js +236 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/perf/Accumulator.js +244 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/perf/Monitor.js +197 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/util/DelayedTask.js +71 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/util/Event.js +215 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/util/Format.js +551 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/util/TaskManager.js +417 -0
- data/app/assets/javascripts/extjs-rails/src/core/src/version/Version.js +364 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/README.MD +91 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/bootstrap.js +39 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/build/build-data.js +34 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/build/build.sh +2 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/data.js +27 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/index.html +15 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom.html +40 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/extjs-api.js +12 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/platform-api.js +134 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/sanity.js +4 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/touch-api-out.js +128 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/dom/touch-api.js +89 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/other_specs/env/Environment.js +357 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/APITest.js +37 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/jsb3.js +14 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/resources/test-setup.js +137 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/EventManager.js +629 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext-mess.backup +198 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext-more.js +520 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Ext.js +1550 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/Support.js +250 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/Base.js +47 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/Class.js +561 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/class/ClassManager.js +555 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/CompositeElementLite.js +409 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/DomHelper.js +444 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.insertion.js +342 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.js +731 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.static.js +201 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.style.js +118 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/dom/Element.traversal.js +336 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Array.js +1229 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Date.js +697 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Error.js +277 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Function.js +536 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Number.js +323 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/Object.js +591 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/lang/String.js +451 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/misc/JSON.js +252 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/util/Format.js +521 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/spec/version/Version.js +148 -0
- data/app/assets/javascripts/extjs-rails/src/core/test/unit/specs.html +19 -0
- data/app/assets/javascripts/extjs-rails/src/data/AbstractStore.js +887 -0
- data/app/assets/javascripts/extjs-rails/src/data/ArrayStore.js +74 -0
- data/app/assets/javascripts/extjs-rails/src/data/Batch.js +236 -0
- data/app/assets/javascripts/extjs-rails/src/data/BufferStore.js +13 -0
- data/app/assets/javascripts/extjs-rails/src/data/Connection.js +969 -0
- data/app/assets/javascripts/extjs-rails/src/data/DirectStore.js +50 -0
- data/app/assets/javascripts/extjs-rails/src/data/Errors.js +52 -0
- data/app/assets/javascripts/extjs-rails/src/data/Field.js +341 -0
- data/app/assets/javascripts/extjs-rails/src/data/IdGenerator.js +198 -0
- data/app/assets/javascripts/extjs-rails/src/data/JsonP.js +253 -0
- data/app/assets/javascripts/extjs-rails/src/data/JsonPStore.js +51 -0
- data/app/assets/javascripts/extjs-rails/src/data/JsonStore.js +60 -0
- data/app/assets/javascripts/extjs-rails/src/data/Model.js +1673 -0
- data/app/assets/javascripts/extjs-rails/src/data/NodeInterface.js +1294 -0
- data/app/assets/javascripts/extjs-rails/src/data/NodeStore.js +254 -0
- data/app/assets/javascripts/extjs-rails/src/data/Operation.js +331 -0
- data/app/assets/javascripts/extjs-rails/src/data/Request.js +40 -0
- data/app/assets/javascripts/extjs-rails/src/data/ResultSet.js +56 -0
- data/app/assets/javascripts/extjs-rails/src/data/SequentialIdGenerator.js +61 -0
- data/app/assets/javascripts/extjs-rails/src/data/SortTypes.js +125 -0
- data/app/assets/javascripts/extjs-rails/src/data/Store.js +2609 -0
- data/app/assets/javascripts/extjs-rails/src/data/StoreManager.js +156 -0
- data/app/assets/javascripts/extjs-rails/src/data/Tree.js +290 -0
- data/app/assets/javascripts/extjs-rails/src/data/TreeStore.js +655 -0
- data/app/assets/javascripts/extjs-rails/src/data/Types.js +190 -0
- data/app/assets/javascripts/extjs-rails/src/data/UuidGenerator.js +215 -0
- data/app/assets/javascripts/extjs-rails/src/data/XmlStore.js +76 -0
- data/app/assets/javascripts/extjs-rails/src/data/association/Association.js +243 -0
- data/app/assets/javascripts/extjs-rails/src/data/association/BelongsTo.js +291 -0
- data/app/assets/javascripts/extjs-rails/src/data/association/HasMany.js +289 -0
- data/app/assets/javascripts/extjs-rails/src/data/association/HasOne.js +304 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Ajax.js +282 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Client.js +21 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Direct.js +181 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/JsonP.js +313 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/LocalStorage.js +69 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Memory.js +156 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Proxy.js +433 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Rest.js +173 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/Server.js +460 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/SessionStorage.js +39 -0
- data/app/assets/javascripts/extjs-rails/src/data/proxy/WebStorage.js +546 -0
- data/app/assets/javascripts/extjs-rails/src/data/reader/Array.js +68 -0
- data/app/assets/javascripts/extjs-rails/src/data/reader/Json.js +383 -0
- data/app/assets/javascripts/extjs-rails/src/data/reader/Reader.js +735 -0
- data/app/assets/javascripts/extjs-rails/src/data/reader/Xml.js +292 -0
- data/app/assets/javascripts/extjs-rails/src/data/validations.js +149 -0
- data/app/assets/javascripts/extjs-rails/src/data/writer/Json.js +81 -0
- data/app/assets/javascripts/extjs-rails/src/data/writer/Writer.js +147 -0
- data/app/assets/javascripts/extjs-rails/src/data/writer/Xml.js +88 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DD.js +300 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DDProxy.js +204 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DDTarget.js +171 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DragDrop.js +1101 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DragDropManager.js +1264 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DragSource.js +392 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DragTracker.js +562 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DragZone.js +137 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DropTarget.js +118 -0
- data/app/assets/javascripts/extjs-rails/src/dd/DropZone.js +254 -0
- data/app/assets/javascripts/extjs-rails/src/dd/Registry.js +117 -0
- data/app/assets/javascripts/extjs-rails/src/dd/ScrollManager.js +218 -0
- data/app/assets/javascripts/extjs-rails/src/dd/StatusProxy.js +179 -0
- data/app/assets/javascripts/extjs-rails/src/diag/layout/Context.js +523 -0
- data/app/assets/javascripts/extjs-rails/src/diag/layout/ContextItem.js +179 -0
- data/app/assets/javascripts/extjs-rails/src/direct/Event.js +35 -0
- data/app/assets/javascripts/extjs-rails/src/direct/ExceptionEvent.js +16 -0
- data/app/assets/javascripts/extjs-rails/src/direct/JsonProvider.js +82 -0
- data/app/assets/javascripts/extjs-rails/src/direct/Manager.js +263 -0
- data/app/assets/javascripts/extjs-rails/src/direct/PollingProvider.js +156 -0
- data/app/assets/javascripts/extjs-rails/src/direct/Provider.js +96 -0
- data/app/assets/javascripts/extjs-rails/src/direct/RemotingEvent.js +24 -0
- data/app/assets/javascripts/extjs-rails/src/direct/RemotingMethod.js +100 -0
- data/app/assets/javascripts/extjs-rails/src/direct/RemotingProvider.js +510 -0
- data/app/assets/javascripts/extjs-rails/src/direct/Transaction.js +41 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.alignment.js +378 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.anim.js +962 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.dd.js +40 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.fx.js +194 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.js +1407 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.position.js +501 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.scroll.js +214 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.style.js +792 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Element.traversal.js +8 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Helper.js +466 -0
- data/app/assets/javascripts/extjs-rails/src/dom/Query.js +1067 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Color.js +303 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Component.js +245 -0
- data/app/assets/javascripts/extjs-rails/src/draw/CompositeSprite.js +299 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Draw.js +1217 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Matrix.js +183 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Sprite.js +554 -0
- data/app/assets/javascripts/extjs-rails/src/draw/SpriteDD.js +87 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Surface.js +1001 -0
- data/app/assets/javascripts/extjs-rails/src/draw/Text.js +175 -0
- data/app/assets/javascripts/extjs-rails/src/draw/engine/ImageExporter.js +106 -0
- data/app/assets/javascripts/extjs-rails/src/draw/engine/Svg.js +734 -0
- data/app/assets/javascripts/extjs-rails/src/draw/engine/SvgExporter.js +280 -0
- data/app/assets/javascripts/extjs-rails/src/draw/engine/Vml.js +916 -0
- data/app/assets/javascripts/extjs-rails/src/flash/Component.js +248 -0
- data/app/assets/javascripts/extjs-rails/src/form/Basic.js +1018 -0
- data/app/assets/javascripts/extjs-rails/src/form/CheckboxGroup.js +441 -0
- data/app/assets/javascripts/extjs-rails/src/form/CheckboxManager.js +26 -0
- data/app/assets/javascripts/extjs-rails/src/form/FieldAncestor.js +210 -0
- data/app/assets/javascripts/extjs-rails/src/form/FieldContainer.js +290 -0
- data/app/assets/javascripts/extjs-rails/src/form/FieldSet.js +506 -0
- data/app/assets/javascripts/extjs-rails/src/form/Label.js +110 -0
- data/app/assets/javascripts/extjs-rails/src/form/Labelable.js +764 -0
- data/app/assets/javascripts/extjs-rails/src/form/Panel.js +335 -0
- data/app/assets/javascripts/extjs-rails/src/form/RadioGroup.js +124 -0
- data/app/assets/javascripts/extjs-rails/src/form/RadioManager.js +26 -0
- data/app/assets/javascripts/extjs-rails/src/form/action/Action.js +307 -0
- data/app/assets/javascripts/extjs-rails/src/form/action/DirectLoad.js +107 -0
- data/app/assets/javascripts/extjs-rails/src/form/action/DirectSubmit.js +119 -0
- data/app/assets/javascripts/extjs-rails/src/form/action/Load.js +120 -0
- data/app/assets/javascripts/extjs-rails/src/form/action/StandardSubmit.js +34 -0
- data/app/assets/javascripts/extjs-rails/src/form/action/Submit.js +257 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Base.js +813 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Checkbox.js +505 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/ComboBox.js +1427 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Date.js +578 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Display.js +155 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Field.js +430 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/File.js +265 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Hidden.js +75 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/HtmlEditor.js +1439 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Number.js +380 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Picker.js +321 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Radio.js +279 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Spinner.js +321 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Text.js +727 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/TextArea.js +228 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Time.js +459 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/Trigger.js +469 -0
- data/app/assets/javascripts/extjs-rails/src/form/field/VTypes.js +172 -0
- data/app/assets/javascripts/extjs-rails/src/fx/Anim.js +472 -0
- data/app/assets/javascripts/extjs-rails/src/fx/Animator.js +410 -0
- data/app/assets/javascripts/extjs-rails/src/fx/CubicBezier.js +77 -0
- data/app/assets/javascripts/extjs-rails/src/fx/Easing.js +136 -0
- data/app/assets/javascripts/extjs-rails/src/fx/Manager.js +353 -0
- data/app/assets/javascripts/extjs-rails/src/fx/PropertyHandler.js +381 -0
- data/app/assets/javascripts/extjs-rails/src/fx/Queue.js +123 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/Component.js +118 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeElement.js +46 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeElementCSS.js +22 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/CompositeSprite.js +34 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/Element.js +83 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/ElementCSS.js +77 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/Sprite.js +128 -0
- data/app/assets/javascripts/extjs-rails/src/fx/target/Target.js +36 -0
- data/app/assets/javascripts/extjs-rails/src/grid/CellEditor.js +172 -0
- data/app/assets/javascripts/extjs-rails/src/grid/ColumnComponentLayout.js +34 -0
- data/app/assets/javascripts/extjs-rails/src/grid/ColumnLayout.js +201 -0
- data/app/assets/javascripts/extjs-rails/src/grid/Lockable.js +863 -0
- data/app/assets/javascripts/extjs-rails/src/grid/LockingView.js +169 -0
- data/app/assets/javascripts/extjs-rails/src/grid/PagingScroller.js +539 -0
- data/app/assets/javascripts/extjs-rails/src/grid/Panel.js +393 -0
- data/app/assets/javascripts/extjs-rails/src/grid/RowEditor.js +731 -0
- data/app/assets/javascripts/extjs-rails/src/grid/RowNumberer.js +76 -0
- data/app/assets/javascripts/extjs-rails/src/grid/Scroller.js +5 -0
- data/app/assets/javascripts/extjs-rails/src/grid/View.js +44 -0
- data/app/assets/javascripts/extjs-rails/src/grid/ViewDropZone.js +41 -0
- data/app/assets/javascripts/extjs-rails/src/grid/column/Action.js +318 -0
- data/app/assets/javascripts/extjs-rails/src/grid/column/Boolean.js +82 -0
- data/app/assets/javascripts/extjs-rails/src/grid/column/Column.js +835 -0
- data/app/assets/javascripts/extjs-rails/src/grid/column/Date.js +63 -0
- data/app/assets/javascripts/extjs-rails/src/grid/column/Number.js +52 -0
- data/app/assets/javascripts/extjs-rails/src/grid/column/Template.js +58 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/AbstractSummary.js +154 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/Chunking.js +77 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/Feature.js +158 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/Grouping.js +822 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/GroupingSummary.js +243 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/RowBody.js +116 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/RowWrap.js +120 -0
- data/app/assets/javascripts/extjs-rails/src/grid/feature/Summary.js +167 -0
- data/app/assets/javascripts/extjs-rails/src/grid/header/Container.js +965 -0
- data/app/assets/javascripts/extjs-rails/src/grid/header/DragZone.js +69 -0
- data/app/assets/javascripts/extjs-rails/src/grid/header/DropZone.js +265 -0
- data/app/assets/javascripts/extjs-rails/src/grid/plugin/CellEditing.js +453 -0
- data/app/assets/javascripts/extjs-rails/src/grid/plugin/DragDrop.js +254 -0
- data/app/assets/javascripts/extjs-rails/src/grid/plugin/Editing.js +561 -0
- data/app/assets/javascripts/extjs-rails/src/grid/plugin/HeaderReorderer.js +49 -0
- data/app/assets/javascripts/extjs-rails/src/grid/plugin/HeaderResizer.js +292 -0
- data/app/assets/javascripts/extjs-rails/src/grid/plugin/RowEditing.js +339 -0
- data/app/assets/javascripts/extjs-rails/src/grid/property/Grid.js +351 -0
- data/app/assets/javascripts/extjs-rails/src/grid/property/HeaderContainer.js +109 -0
- data/app/assets/javascripts/extjs-rails/src/grid/property/Property.js +36 -0
- data/app/assets/javascripts/extjs-rails/src/grid/property/Store.js +141 -0
- data/app/assets/javascripts/extjs-rails/src/layout/ClassList.js +90 -0
- data/app/assets/javascripts/extjs-rails/src/layout/Context.js +1232 -0
- data/app/assets/javascripts/extjs-rails/src/layout/ContextItem.js +1470 -0
- data/app/assets/javascripts/extjs-rails/src/layout/Layout.js +761 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Auto.js +220 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Body.js +80 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/BoundList.js +95 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Button.js +261 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Component.js +427 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Dock.js +1132 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Draw.js +79 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/FieldSet.js +62 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/ProgressBar.js +54 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/Tab.js +23 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/ComboBox.js +52 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/Field.js +372 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/FieldContainer.js +48 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/HtmlEditor.js +54 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/Slider.js +58 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/Text.js +75 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/TextArea.js +51 -0
- data/app/assets/javascripts/extjs-rails/src/layout/component/field/Trigger.js +132 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Absolute.js +121 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Accordion.js +308 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Anchor.js +403 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Auto.js +70 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Border-old-js +1079 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Border.js +816 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Box.js +929 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Card.js +361 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/CheckboxGroup.js +376 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Column.js +234 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Container.js +961 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Editor.js +74 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Fit.js +287 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Form.js +157 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/HBox.js +134 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/Table.js +412 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/VBox.js +139 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/Menu.js +365 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/None.js +83 -0
- data/app/assets/javascripts/extjs-rails/src/layout/container/boxOverflow/Scroller.js +475 -0
- data/app/assets/javascripts/extjs-rails/src/menu/CheckItem.js +169 -0
- data/app/assets/javascripts/extjs-rails/src/menu/ColorPicker.js +110 -0
- data/app/assets/javascripts/extjs-rails/src/menu/DatePicker.js +100 -0
- data/app/assets/javascripts/extjs-rails/src/menu/Item.js +553 -0
- data/app/assets/javascripts/extjs-rails/src/menu/KeyNav.js +134 -0
- data/app/assets/javascripts/extjs-rails/src/menu/Manager.js +219 -0
- data/app/assets/javascripts/extjs-rails/src/menu/Menu.js +579 -0
- data/app/assets/javascripts/extjs-rails/src/menu/Separator.js +126 -0
- data/app/assets/javascripts/extjs-rails/src/panel/AbstractPanel.js +323 -0
- data/app/assets/javascripts/extjs-rails/src/panel/DD.js +99 -0
- data/app/assets/javascripts/extjs-rails/src/panel/Header.js +518 -0
- data/app/assets/javascripts/extjs-rails/src/panel/Panel.js +2150 -0
- data/app/assets/javascripts/extjs-rails/src/panel/Proxy.js +131 -0
- data/app/assets/javascripts/extjs-rails/src/panel/Table.js +1018 -0
- data/app/assets/javascripts/extjs-rails/src/panel/Tool.js +304 -0
- data/app/assets/javascripts/extjs-rails/src/picker/Color.js +219 -0
- data/app/assets/javascripts/extjs-rails/src/picker/Date.js +1140 -0
- data/app/assets/javascripts/extjs-rails/src/picker/Month.js +490 -0
- data/app/assets/javascripts/extjs-rails/src/picker/Time.js +165 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/BorderSplitter.js +22 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/BorderSplitterTracker.js +210 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/Handle.js +29 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/ResizeTracker.js +346 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/Resizer.js +477 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/Splitter.js +242 -0
- data/app/assets/javascripts/extjs-rails/src/resizer/SplitterTracker.js +230 -0
- data/app/assets/javascripts/extjs-rails/src/selection/CellModel.js +395 -0
- data/app/assets/javascripts/extjs-rails/src/selection/CheckboxModel.js +234 -0
- data/app/assets/javascripts/extjs-rails/src/selection/DataViewModel.js +160 -0
- data/app/assets/javascripts/extjs-rails/src/selection/Model.js +646 -0
- data/app/assets/javascripts/extjs-rails/src/selection/RowModel.js +499 -0
- data/app/assets/javascripts/extjs-rails/src/selection/TreeModel.js +78 -0
- data/app/assets/javascripts/extjs-rails/src/slider/Multi.js +835 -0
- data/app/assets/javascripts/extjs-rails/src/slider/Single.js +56 -0
- data/app/assets/javascripts/extjs-rails/src/slider/Thumb.js +259 -0
- data/app/assets/javascripts/extjs-rails/src/slider/Tip.js +130 -0
- data/app/assets/javascripts/extjs-rails/src/state/CookieProvider.js +120 -0
- data/app/assets/javascripts/extjs-rails/src/state/LocalStorageProvider.js +72 -0
- data/app/assets/javascripts/extjs-rails/src/state/Manager.js +70 -0
- data/app/assets/javascripts/extjs-rails/src/state/Provider.js +182 -0
- data/app/assets/javascripts/extjs-rails/src/state/Stateful.js +364 -0
- data/app/assets/javascripts/extjs-rails/src/tab/Bar.js +258 -0
- data/app/assets/javascripts/extjs-rails/src/tab/Panel.js +654 -0
- data/app/assets/javascripts/extjs-rails/src/tab/Tab.js +358 -0
- data/app/assets/javascripts/extjs-rails/src/tail.js +10 -0
- data/app/assets/javascripts/extjs-rails/src/tip/QuickTip.js +335 -0
- data/app/assets/javascripts/extjs-rails/src/tip/QuickTipManager.js +239 -0
- data/app/assets/javascripts/extjs-rails/src/tip/Tip.js +160 -0
- data/app/assets/javascripts/extjs-rails/src/tip/ToolTip.js +691 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Fill.js +28 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Item.js +16 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Paging.js +600 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Separator.js +23 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Spacer.js +33 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/TextItem.js +57 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Toolbar-legacy.js +123 -0
- data/app/assets/javascripts/extjs-rails/src/toolbar/Toolbar.js +447 -0
- data/app/assets/javascripts/extjs-rails/src/tree/Column.js +90 -0
- data/app/assets/javascripts/extjs-rails/src/tree/Panel.js +505 -0
- data/app/assets/javascripts/extjs-rails/src/tree/View.js +658 -0
- data/app/assets/javascripts/extjs-rails/src/tree/ViewDragZone.js +49 -0
- data/app/assets/javascripts/extjs-rails/src/tree/ViewDropZone.js +287 -0
- data/app/assets/javascripts/extjs-rails/src/tree/plugin/TreeViewDragDrop.js +244 -0
- data/app/assets/javascripts/extjs-rails/src/util/AbstractMixedCollection.js +772 -0
- data/app/assets/javascripts/extjs-rails/src/util/Animate.js +426 -0
- data/app/assets/javascripts/extjs-rails/src/util/Bindable.js +102 -0
- data/app/assets/javascripts/extjs-rails/src/util/CSS.js +185 -0
- data/app/assets/javascripts/extjs-rails/src/util/ClickRepeater.js +238 -0
- data/app/assets/javascripts/extjs-rails/src/util/ComponentDragger.js +126 -0
- data/app/assets/javascripts/extjs-rails/src/util/Cookies.js +91 -0
- data/app/assets/javascripts/extjs-rails/src/util/ElementContainer.js +293 -0
- data/app/assets/javascripts/extjs-rails/src/util/Filter.js +159 -0
- data/app/assets/javascripts/extjs-rails/src/util/Floating.js +321 -0
- data/app/assets/javascripts/extjs-rails/src/util/Grouper.js +26 -0
- data/app/assets/javascripts/extjs-rails/src/util/HashMap.js +356 -0
- data/app/assets/javascripts/extjs-rails/src/util/History.js +285 -0
- data/app/assets/javascripts/extjs-rails/src/util/Inflector.js +297 -0
- data/app/assets/javascripts/extjs-rails/src/util/KeyMap.js +427 -0
- data/app/assets/javascripts/extjs-rails/src/util/KeyNav.js +239 -0
- data/app/assets/javascripts/extjs-rails/src/util/LruCache.js +257 -0
- data/app/assets/javascripts/extjs-rails/src/util/Memento.js +131 -0
- data/app/assets/javascripts/extjs-rails/src/util/MixedCollection.js +239 -0
- data/app/assets/javascripts/extjs-rails/src/util/Observable.js +1003 -0
- data/app/assets/javascripts/extjs-rails/src/util/Offset.js +60 -0
- data/app/assets/javascripts/extjs-rails/src/util/Point.js +93 -0
- data/app/assets/javascripts/extjs-rails/src/util/ProtoElement.js +205 -0
- data/app/assets/javascripts/extjs-rails/src/util/Queue.js +76 -0
- data/app/assets/javascripts/extjs-rails/src/util/Region.js +388 -0
- data/app/assets/javascripts/extjs-rails/src/util/Renderable.js +1079 -0
- data/app/assets/javascripts/extjs-rails/src/util/Sortable.js +248 -0
- data/app/assets/javascripts/extjs-rails/src/util/Sorter.js +179 -0
- data/app/assets/javascripts/extjs-rails/src/util/TextMetrics.js +148 -0
- data/app/assets/javascripts/extjs-rails/src/view/AbstractView.js +1103 -0
- data/app/assets/javascripts/extjs-rails/src/view/BoundList.js +207 -0
- data/app/assets/javascripts/extjs-rails/src/view/BoundListKeyNav.js +92 -0
- data/app/assets/javascripts/extjs-rails/src/view/DragZone.js +106 -0
- data/app/assets/javascripts/extjs-rails/src/view/DropZone.js +240 -0
- data/app/assets/javascripts/extjs-rails/src/view/Table.js +1229 -0
- data/app/assets/javascripts/extjs-rails/src/view/TableChunker.js +139 -0
- data/app/assets/javascripts/extjs-rails/src/view/View.js +636 -0
- data/app/assets/javascripts/extjs-rails/src/window/MessageBox.js +880 -0
- data/app/assets/javascripts/extjs-rails/src/window/Window-legacy.js +56 -0
- data/app/assets/javascripts/extjs-rails/src/window/Window.js +793 -0
- data/extjs-rails.gemspec +24 -0
- data/lib/extjs-rails.rb +7 -0
- data/lib/extjs-rails/engine.rb +7 -0
- data/lib/extjs-rails/version.rb +5 -0
- metadata +660 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @singleton
|
|
3
|
+
* @alternateClassName Ext.form.VTypes
|
|
4
|
+
*
|
|
5
|
+
* This is a singleton object which contains a set of commonly used field validation functions
|
|
6
|
+
* and provides a mechanism for creating reusable custom field validations.
|
|
7
|
+
* The following field validation functions are provided out of the box:
|
|
8
|
+
*
|
|
9
|
+
* - {@link #alpha}
|
|
10
|
+
* - {@link #alphanum}
|
|
11
|
+
* - {@link #email}
|
|
12
|
+
* - {@link #url}
|
|
13
|
+
*
|
|
14
|
+
* VTypes can be applied to a {@link Ext.form.field.Text Text Field} using the `{@link Ext.form.field.Text#vtype vtype}` configuration:
|
|
15
|
+
*
|
|
16
|
+
* Ext.create('Ext.form.field.Text', {
|
|
17
|
+
* fieldLabel: 'Email Address',
|
|
18
|
+
* name: 'email',
|
|
19
|
+
* vtype: 'email' // applies email validation rules to this field
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* To create custom VTypes:
|
|
23
|
+
*
|
|
24
|
+
* // custom Vtype for vtype:'time'
|
|
25
|
+
* var timeTest = /^([1-9]|1[0-9]):([0-5][0-9])(\s[a|p]m)$/i;
|
|
26
|
+
* Ext.apply(Ext.form.field.VTypes, {
|
|
27
|
+
* // vtype validation function
|
|
28
|
+
* time: function(val, field) {
|
|
29
|
+
* return timeTest.test(val);
|
|
30
|
+
* },
|
|
31
|
+
* // vtype Text property: The error text to display when the validation function returns false
|
|
32
|
+
* timeText: 'Not a valid time. Must be in the format "12:34 PM".',
|
|
33
|
+
* // vtype Mask property: The keystroke filter mask
|
|
34
|
+
* timeMask: /[\d\s:amp]/i
|
|
35
|
+
* });
|
|
36
|
+
*
|
|
37
|
+
* In the above example the `time` function is the validator that will run when field validation occurs,
|
|
38
|
+
* `timeText` is the error message, and `timeMask` limits what characters can be typed into the field.
|
|
39
|
+
* Note that the `Text` and `Mask` functions must begin with the same name as the validator function.
|
|
40
|
+
*
|
|
41
|
+
* Using a custom validator is the same as using one of the build-in validators - just use the name of the validator function
|
|
42
|
+
* as the `{@link Ext.form.field.Text#vtype vtype}` configuration on a {@link Ext.form.field.Text Text Field}:
|
|
43
|
+
*
|
|
44
|
+
* Ext.create('Ext.form.field.Text', {
|
|
45
|
+
* fieldLabel: 'Departure Time',
|
|
46
|
+
* name: 'departureTime',
|
|
47
|
+
* vtype: 'time' // applies custom time validation rules to this field
|
|
48
|
+
* });
|
|
49
|
+
*
|
|
50
|
+
* Another example of a custom validator:
|
|
51
|
+
*
|
|
52
|
+
* // custom Vtype for vtype:'IPAddress'
|
|
53
|
+
* Ext.apply(Ext.form.field.VTypes, {
|
|
54
|
+
* IPAddress: function(v) {
|
|
55
|
+
* return /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(v);
|
|
56
|
+
* },
|
|
57
|
+
* IPAddressText: 'Must be a numeric IP address',
|
|
58
|
+
* IPAddressMask: /[\d\.]/i
|
|
59
|
+
* });
|
|
60
|
+
*
|
|
61
|
+
* It's important to note that using {@link Ext#apply Ext.apply()} means that the custom validator function
|
|
62
|
+
* as well as `Text` and `Mask` fields are added as properties of the `Ext.form.field.VTypes` singleton.
|
|
63
|
+
*/
|
|
64
|
+
Ext.define('Ext.form.field.VTypes', (function(){
|
|
65
|
+
// closure these in so they are only created once.
|
|
66
|
+
var alpha = /^[a-zA-Z_]+$/,
|
|
67
|
+
alphanum = /^[a-zA-Z0-9_]+$/,
|
|
68
|
+
email = /^(\w+)([\-+.][\w]+)*@(\w[\-\w]*\.){1,5}([A-Za-z]){2,6}$/,
|
|
69
|
+
url = /(((^https?)|(^ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;
|
|
70
|
+
|
|
71
|
+
// All these messages and functions are configurable
|
|
72
|
+
return {
|
|
73
|
+
singleton: true,
|
|
74
|
+
alternateClassName: 'Ext.form.VTypes',
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* The function used to validate email addresses. Note that this is a very basic validation - complete
|
|
78
|
+
* validation per the email RFC specifications is very complex and beyond the scope of this class, although this
|
|
79
|
+
* function can be overridden if a more comprehensive validation scheme is desired. See the validation section
|
|
80
|
+
* of the [Wikipedia article on email addresses][1] for additional information. This implementation is intended
|
|
81
|
+
* to validate the following emails:
|
|
82
|
+
*
|
|
83
|
+
* - `barney@example.de`
|
|
84
|
+
* - `barney.rubble@example.com`
|
|
85
|
+
* - `barney-rubble@example.coop`
|
|
86
|
+
* - `barney+rubble@example.com`
|
|
87
|
+
*
|
|
88
|
+
* [1]: http://en.wikipedia.org/wiki/E-mail_address
|
|
89
|
+
*
|
|
90
|
+
* @param {String} value The email address
|
|
91
|
+
* @return {Boolean} true if the RegExp test passed, and false if not.
|
|
92
|
+
*/
|
|
93
|
+
'email' : function(v){
|
|
94
|
+
return email.test(v);
|
|
95
|
+
},
|
|
96
|
+
/**
|
|
97
|
+
* @property {String} emailText
|
|
98
|
+
* The error text to display when the email validation function returns false.
|
|
99
|
+
* Defaults to: 'This field should be an e-mail address in the format "user@example.com"'
|
|
100
|
+
*/
|
|
101
|
+
//<locale>
|
|
102
|
+
'emailText' : 'This field should be an e-mail address in the format "user@example.com"',
|
|
103
|
+
//</locale>
|
|
104
|
+
/**
|
|
105
|
+
* @property {RegExp} emailMask
|
|
106
|
+
* The keystroke filter mask to be applied on email input. See the {@link #email} method for information about
|
|
107
|
+
* more complex email validation. Defaults to: /[a-z0-9_\.\-@]/i
|
|
108
|
+
*/
|
|
109
|
+
'emailMask' : /[a-z0-9_\.\-@\+]/i,
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* The function used to validate URLs
|
|
113
|
+
* @param {String} value The URL
|
|
114
|
+
* @return {Boolean} true if the RegExp test passed, and false if not.
|
|
115
|
+
*/
|
|
116
|
+
'url' : function(v){
|
|
117
|
+
return url.test(v);
|
|
118
|
+
},
|
|
119
|
+
/**
|
|
120
|
+
* @property {String} urlText
|
|
121
|
+
* The error text to display when the url validation function returns false.
|
|
122
|
+
* Defaults to: 'This field should be a URL in the format "http:/'+'/www.example.com"'
|
|
123
|
+
*/
|
|
124
|
+
//<locale>
|
|
125
|
+
'urlText' : 'This field should be a URL in the format "http:/'+'/www.example.com"',
|
|
126
|
+
//</locale>
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* The function used to validate alpha values
|
|
130
|
+
* @param {String} value The value
|
|
131
|
+
* @return {Boolean} true if the RegExp test passed, and false if not.
|
|
132
|
+
*/
|
|
133
|
+
'alpha' : function(v){
|
|
134
|
+
return alpha.test(v);
|
|
135
|
+
},
|
|
136
|
+
/**
|
|
137
|
+
* @property {String} alphaText
|
|
138
|
+
* The error text to display when the alpha validation function returns false.
|
|
139
|
+
* Defaults to: 'This field should only contain letters and _'
|
|
140
|
+
*/
|
|
141
|
+
//<locale>
|
|
142
|
+
'alphaText' : 'This field should only contain letters and _',
|
|
143
|
+
//</locale>
|
|
144
|
+
/**
|
|
145
|
+
* @property {RegExp} alphaMask
|
|
146
|
+
* The keystroke filter mask to be applied on alpha input. Defaults to: /[a-z_]/i
|
|
147
|
+
*/
|
|
148
|
+
'alphaMask' : /[a-z_]/i,
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* The function used to validate alphanumeric values
|
|
152
|
+
* @param {String} value The value
|
|
153
|
+
* @return {Boolean} true if the RegExp test passed, and false if not.
|
|
154
|
+
*/
|
|
155
|
+
'alphanum' : function(v){
|
|
156
|
+
return alphanum.test(v);
|
|
157
|
+
},
|
|
158
|
+
/**
|
|
159
|
+
* @property {String} alphanumText
|
|
160
|
+
* The error text to display when the alphanumeric validation function returns false.
|
|
161
|
+
* Defaults to: 'This field should only contain letters, numbers and _'
|
|
162
|
+
*/
|
|
163
|
+
//<locale>
|
|
164
|
+
'alphanumText' : 'This field should only contain letters, numbers and _',
|
|
165
|
+
//</locale>
|
|
166
|
+
/**
|
|
167
|
+
* @property {RegExp} alphanumMask
|
|
168
|
+
* The keystroke filter mask to be applied on alphanumeric input. Defaults to: /[a-z0-9_]/i
|
|
169
|
+
*/
|
|
170
|
+
'alphanumMask' : /[a-z0-9_]/i
|
|
171
|
+
};
|
|
172
|
+
}()));
|
|
@@ -0,0 +1,472 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @class Ext.fx.Anim
|
|
3
|
+
*
|
|
4
|
+
* This class manages animation for a specific {@link #target}. The animation allows
|
|
5
|
+
* animation of various properties on the target, such as size, position, color and others.
|
|
6
|
+
*
|
|
7
|
+
* ## Starting Conditions
|
|
8
|
+
* The starting conditions for the animation are provided by the {@link #from} configuration.
|
|
9
|
+
* Any/all of the properties in the {@link #from} configuration can be specified. If a particular
|
|
10
|
+
* property is not defined, the starting value for that property will be read directly from the target.
|
|
11
|
+
*
|
|
12
|
+
* ## End Conditions
|
|
13
|
+
* The ending conditions for the animation are provided by the {@link #to} configuration. These mark
|
|
14
|
+
* the final values once the animations has finished. The values in the {@link #from} can mirror
|
|
15
|
+
* those in the {@link #to} configuration to provide a starting point.
|
|
16
|
+
*
|
|
17
|
+
* ## Other Options
|
|
18
|
+
* - {@link #duration}: Specifies the time period of the animation.
|
|
19
|
+
* - {@link #easing}: Specifies the easing of the animation.
|
|
20
|
+
* - {@link #iterations}: Allows the animation to repeat a number of times.
|
|
21
|
+
* - {@link #alternate}: Used in conjunction with {@link #iterations}, reverses the direction every second iteration.
|
|
22
|
+
*
|
|
23
|
+
* ## Example Code
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* var myComponent = Ext.create('Ext.Component', {
|
|
27
|
+
* renderTo: document.body,
|
|
28
|
+
* width: 200,
|
|
29
|
+
* height: 200,
|
|
30
|
+
* style: 'border: 1px solid red;'
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* Ext.create('Ext.fx.Anim', {
|
|
34
|
+
* target: myComponent,
|
|
35
|
+
* duration: 1000,
|
|
36
|
+
* from: {
|
|
37
|
+
* width: 400 //starting width 400
|
|
38
|
+
* },
|
|
39
|
+
* to: {
|
|
40
|
+
* width: 300, //end width 300
|
|
41
|
+
* height: 300 // end height 300
|
|
42
|
+
* }
|
|
43
|
+
* });
|
|
44
|
+
*/
|
|
45
|
+
Ext.define('Ext.fx.Anim', {
|
|
46
|
+
|
|
47
|
+
/* Begin Definitions */
|
|
48
|
+
|
|
49
|
+
mixins: {
|
|
50
|
+
observable: 'Ext.util.Observable'
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
requires: ['Ext.fx.Manager', 'Ext.fx.Animator', 'Ext.fx.Easing', 'Ext.fx.CubicBezier', 'Ext.fx.PropertyHandler'],
|
|
54
|
+
|
|
55
|
+
/* End Definitions */
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @property {Boolean} isAnimation
|
|
59
|
+
* `true` in this class to identify an object as an instantiated Anim, or subclass thereof.
|
|
60
|
+
*/
|
|
61
|
+
isAnimation: true,
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* @cfg {Function} callback
|
|
65
|
+
* A function to be run after the animation has completed.
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* @cfg {Function} scope
|
|
70
|
+
* The scope that the {@link #callback} function will be called with
|
|
71
|
+
*/
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* @cfg {Number} duration
|
|
75
|
+
* Time in milliseconds for a single animation to last. Defaults to 250. If the {@link #iterations} property is
|
|
76
|
+
* specified, then each animate will take the same duration for each iteration.
|
|
77
|
+
*/
|
|
78
|
+
duration: 250,
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* @cfg {Number} delay
|
|
82
|
+
* Time to delay before starting the animation. Defaults to 0.
|
|
83
|
+
*/
|
|
84
|
+
delay: 0,
|
|
85
|
+
|
|
86
|
+
/* private used to track a delayed starting time */
|
|
87
|
+
delayStart: 0,
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* @cfg {Boolean} dynamic
|
|
91
|
+
* Currently only for Component Animation: Only set a component's outer element size bypassing layouts. Set to true to do full layouts for every frame of the animation. Defaults to false.
|
|
92
|
+
*/
|
|
93
|
+
dynamic: false,
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* @cfg {String} easing
|
|
97
|
+
This describes how the intermediate values used during a transition will be calculated. It allows for a transition to change
|
|
98
|
+
speed over its duration.
|
|
99
|
+
|
|
100
|
+
-backIn
|
|
101
|
+
-backOut
|
|
102
|
+
-bounceIn
|
|
103
|
+
-bounceOut
|
|
104
|
+
-ease
|
|
105
|
+
-easeIn
|
|
106
|
+
-easeOut
|
|
107
|
+
-easeInOut
|
|
108
|
+
-elasticIn
|
|
109
|
+
-elasticOut
|
|
110
|
+
-cubic-bezier(x1, y1, x2, y2)
|
|
111
|
+
|
|
112
|
+
Note that cubic-bezier will create a custom easing curve following the CSS3 [transition-timing-function][0]
|
|
113
|
+
specification. The four values specify points P1 and P2 of the curve as (x1, y1, x2, y2). All values must
|
|
114
|
+
be in the range [0, 1] or the definition is invalid.
|
|
115
|
+
|
|
116
|
+
[0]: http://www.w3.org/TR/css3-transitions/#transition-timing-function_tag
|
|
117
|
+
|
|
118
|
+
* @markdown
|
|
119
|
+
*/
|
|
120
|
+
easing: 'ease',
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* @cfg {Object} keyframes
|
|
124
|
+
* Animation keyframes follow the CSS3 Animation configuration pattern. 'from' is always considered '0%' and 'to'
|
|
125
|
+
* is considered '100%'.<b>Every keyframe declaration must have a keyframe rule for 0% and 100%, possibly defined using
|
|
126
|
+
* "from" or "to"</b>. A keyframe declaration without these keyframe selectors is invalid and will not be available for
|
|
127
|
+
* animation. The keyframe declaration for a keyframe rule consists of properties and values. Properties that are unable to
|
|
128
|
+
* be animated are ignored in these rules, with the exception of 'easing' which can be changed at each keyframe. For example:
|
|
129
|
+
<pre><code>
|
|
130
|
+
keyframes : {
|
|
131
|
+
'0%': {
|
|
132
|
+
left: 100
|
|
133
|
+
},
|
|
134
|
+
'40%': {
|
|
135
|
+
left: 150
|
|
136
|
+
},
|
|
137
|
+
'60%': {
|
|
138
|
+
left: 75
|
|
139
|
+
},
|
|
140
|
+
'100%': {
|
|
141
|
+
left: 100
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
</code></pre>
|
|
145
|
+
*/
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* @private
|
|
149
|
+
*/
|
|
150
|
+
damper: 1,
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* @private
|
|
154
|
+
*/
|
|
155
|
+
bezierRE: /^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Run the animation from the end to the beginning
|
|
159
|
+
* Defaults to false.
|
|
160
|
+
* @cfg {Boolean} reverse
|
|
161
|
+
*/
|
|
162
|
+
reverse: false,
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Flag to determine if the animation has started
|
|
166
|
+
* @property running
|
|
167
|
+
* @type Boolean
|
|
168
|
+
*/
|
|
169
|
+
running: false,
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Flag to determine if the animation is paused. Only set this to true if you need to
|
|
173
|
+
* keep the Anim instance around to be unpaused later; otherwise call {@link #end}.
|
|
174
|
+
* @property paused
|
|
175
|
+
* @type Boolean
|
|
176
|
+
*/
|
|
177
|
+
paused: false,
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Number of times to execute the animation. Defaults to 1.
|
|
181
|
+
* @cfg {Number} iterations
|
|
182
|
+
*/
|
|
183
|
+
iterations: 1,
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Used in conjunction with iterations to reverse the animation each time an iteration completes.
|
|
187
|
+
* @cfg {Boolean} alternate
|
|
188
|
+
* Defaults to false.
|
|
189
|
+
*/
|
|
190
|
+
alternate: false,
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Current iteration the animation is running.
|
|
194
|
+
* @property currentIteration
|
|
195
|
+
* @type Number
|
|
196
|
+
*/
|
|
197
|
+
currentIteration: 0,
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Starting time of the animation.
|
|
201
|
+
* @property startTime
|
|
202
|
+
* @type Date
|
|
203
|
+
*/
|
|
204
|
+
startTime: 0,
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Contains a cache of the interpolators to be used.
|
|
208
|
+
* @private
|
|
209
|
+
* @property propHandlers
|
|
210
|
+
* @type Object
|
|
211
|
+
*/
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* @cfg {String/Object} target
|
|
215
|
+
* The {@link Ext.fx.target.Target} to apply the animation to. This should only be specified when creating an Ext.fx.Anim directly.
|
|
216
|
+
* The target does not need to be a {@link Ext.fx.target.Target} instance, it can be the underlying object. For example, you can
|
|
217
|
+
* pass a Component, Element or Sprite as the target and the Anim will create the appropriate {@link Ext.fx.target.Target} object
|
|
218
|
+
* automatically.
|
|
219
|
+
*/
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* @cfg {Object} from
|
|
223
|
+
* An object containing property/value pairs for the beginning of the animation. If not specified, the current state of the
|
|
224
|
+
* Ext.fx.target will be used. For example:
|
|
225
|
+
<pre><code>
|
|
226
|
+
from : {
|
|
227
|
+
opacity: 0, // Transparent
|
|
228
|
+
color: '#ffffff', // White
|
|
229
|
+
left: 0
|
|
230
|
+
}
|
|
231
|
+
</code></pre>
|
|
232
|
+
*/
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* @cfg {Object} to
|
|
236
|
+
* An object containing property/value pairs for the end of the animation. For example:
|
|
237
|
+
<pre><code>
|
|
238
|
+
to : {
|
|
239
|
+
opacity: 1, // Opaque
|
|
240
|
+
color: '#00ff00', // Green
|
|
241
|
+
left: 500
|
|
242
|
+
}
|
|
243
|
+
</code></pre>
|
|
244
|
+
*/
|
|
245
|
+
|
|
246
|
+
// private
|
|
247
|
+
frameCount: 0,
|
|
248
|
+
|
|
249
|
+
// @private
|
|
250
|
+
constructor: function(config) {
|
|
251
|
+
var me = this,
|
|
252
|
+
curve;
|
|
253
|
+
|
|
254
|
+
config = config || {};
|
|
255
|
+
// If keyframes are passed, they really want an Animator instead.
|
|
256
|
+
if (config.keyframes) {
|
|
257
|
+
return new Ext.fx.Animator(config);
|
|
258
|
+
}
|
|
259
|
+
Ext.apply(me, config);
|
|
260
|
+
if (me.from === undefined) {
|
|
261
|
+
me.from = {};
|
|
262
|
+
}
|
|
263
|
+
me.propHandlers = {};
|
|
264
|
+
me.config = config;
|
|
265
|
+
me.target = Ext.fx.Manager.createTarget(me.target);
|
|
266
|
+
me.easingFn = Ext.fx.Easing[me.easing];
|
|
267
|
+
me.target.dynamic = me.dynamic;
|
|
268
|
+
|
|
269
|
+
// If not a pre-defined curve, try a cubic-bezier
|
|
270
|
+
if (!me.easingFn) {
|
|
271
|
+
me.easingFn = String(me.easing).match(me.bezierRE);
|
|
272
|
+
if (me.easingFn && me.easingFn.length == 5) {
|
|
273
|
+
curve = me.easingFn;
|
|
274
|
+
me.easingFn = Ext.fx.CubicBezier.cubicBezier(+curve[1], +curve[2], +curve[3], +curve[4]);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
me.id = Ext.id(null, 'ext-anim-');
|
|
278
|
+
me.addEvents(
|
|
279
|
+
/**
|
|
280
|
+
* @event beforeanimate
|
|
281
|
+
* Fires before the animation starts. A handler can return false to cancel the animation.
|
|
282
|
+
* @param {Ext.fx.Anim} this
|
|
283
|
+
*/
|
|
284
|
+
'beforeanimate',
|
|
285
|
+
/**
|
|
286
|
+
* @event afteranimate
|
|
287
|
+
* Fires when the animation is complete.
|
|
288
|
+
* @param {Ext.fx.Anim} this
|
|
289
|
+
* @param {Date} startTime
|
|
290
|
+
*/
|
|
291
|
+
'afteranimate',
|
|
292
|
+
/**
|
|
293
|
+
* @event lastframe
|
|
294
|
+
* Fires when the animation's last frame has been set.
|
|
295
|
+
* @param {Ext.fx.Anim} this
|
|
296
|
+
* @param {Date} startTime
|
|
297
|
+
*/
|
|
298
|
+
'lastframe'
|
|
299
|
+
);
|
|
300
|
+
me.mixins.observable.constructor.call(me);
|
|
301
|
+
Ext.fx.Manager.addAnim(me);
|
|
302
|
+
},
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* @private
|
|
306
|
+
* Helper to the target
|
|
307
|
+
*/
|
|
308
|
+
setAttr: function(attr, value) {
|
|
309
|
+
return Ext.fx.Manager.items.get(this.id).setAttr(this.target, attr, value);
|
|
310
|
+
},
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* @private
|
|
314
|
+
* Set up the initial currentAttrs hash.
|
|
315
|
+
*/
|
|
316
|
+
initAttrs: function() {
|
|
317
|
+
var me = this,
|
|
318
|
+
from = me.from,
|
|
319
|
+
to = me.to,
|
|
320
|
+
initialFrom = me.initialFrom || {},
|
|
321
|
+
out = {},
|
|
322
|
+
start, end, propHandler, attr;
|
|
323
|
+
|
|
324
|
+
for (attr in to) {
|
|
325
|
+
if (to.hasOwnProperty(attr)) {
|
|
326
|
+
start = me.target.getAttr(attr, from[attr]);
|
|
327
|
+
end = to[attr];
|
|
328
|
+
// Use default (numeric) property handler
|
|
329
|
+
if (!Ext.fx.PropertyHandler[attr]) {
|
|
330
|
+
if (Ext.isObject(end)) {
|
|
331
|
+
propHandler = me.propHandlers[attr] = Ext.fx.PropertyHandler.object;
|
|
332
|
+
} else {
|
|
333
|
+
propHandler = me.propHandlers[attr] = Ext.fx.PropertyHandler.defaultHandler;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
// Use custom handler
|
|
337
|
+
else {
|
|
338
|
+
propHandler = me.propHandlers[attr] = Ext.fx.PropertyHandler[attr];
|
|
339
|
+
}
|
|
340
|
+
out[attr] = propHandler.get(start, end, me.damper, initialFrom[attr], attr);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
me.currentAttrs = out;
|
|
344
|
+
},
|
|
345
|
+
|
|
346
|
+
/**
|
|
347
|
+
* @private
|
|
348
|
+
* Fires beforeanimate and sets the running flag.
|
|
349
|
+
*/
|
|
350
|
+
start: function(startTime) {
|
|
351
|
+
var me = this,
|
|
352
|
+
delay = me.delay,
|
|
353
|
+
delayStart = me.delayStart,
|
|
354
|
+
delayDelta;
|
|
355
|
+
|
|
356
|
+
if (delay) {
|
|
357
|
+
if (!delayStart) {
|
|
358
|
+
me.delayStart = startTime;
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
else {
|
|
362
|
+
delayDelta = startTime - delayStart;
|
|
363
|
+
if (delayDelta < delay) {
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
366
|
+
else {
|
|
367
|
+
// Compensate for frame delay;
|
|
368
|
+
startTime = new Date(delayStart.getTime() + delay);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
if (me.fireEvent('beforeanimate', me) !== false) {
|
|
373
|
+
me.startTime = startTime;
|
|
374
|
+
if (!me.paused && !me.currentAttrs) {
|
|
375
|
+
me.initAttrs();
|
|
376
|
+
}
|
|
377
|
+
me.running = true;
|
|
378
|
+
me.frameCount = 0;
|
|
379
|
+
}
|
|
380
|
+
},
|
|
381
|
+
|
|
382
|
+
/**
|
|
383
|
+
* @private
|
|
384
|
+
* Calculate attribute value at the passed timestamp.
|
|
385
|
+
* @returns a hash of the new attributes.
|
|
386
|
+
*/
|
|
387
|
+
runAnim: function(elapsedTime) {
|
|
388
|
+
var me = this,
|
|
389
|
+
attrs = me.currentAttrs,
|
|
390
|
+
duration = me.duration,
|
|
391
|
+
easingFn = me.easingFn,
|
|
392
|
+
propHandlers = me.propHandlers,
|
|
393
|
+
ret = {},
|
|
394
|
+
easing, values, attr, lastFrame;
|
|
395
|
+
|
|
396
|
+
if (elapsedTime >= duration) {
|
|
397
|
+
elapsedTime = duration;
|
|
398
|
+
lastFrame = true;
|
|
399
|
+
}
|
|
400
|
+
if (me.reverse) {
|
|
401
|
+
elapsedTime = duration - elapsedTime;
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
for (attr in attrs) {
|
|
405
|
+
if (attrs.hasOwnProperty(attr)) {
|
|
406
|
+
values = attrs[attr];
|
|
407
|
+
easing = lastFrame ? 1 : easingFn(elapsedTime / duration);
|
|
408
|
+
ret[attr] = propHandlers[attr].set(values, easing);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
me.frameCount++;
|
|
412
|
+
|
|
413
|
+
return ret;
|
|
414
|
+
},
|
|
415
|
+
|
|
416
|
+
/**
|
|
417
|
+
* @private
|
|
418
|
+
* Perform lastFrame cleanup and handle iterations
|
|
419
|
+
* @returns a hash of the new attributes.
|
|
420
|
+
*/
|
|
421
|
+
lastFrame: function() {
|
|
422
|
+
var me = this,
|
|
423
|
+
iter = me.iterations,
|
|
424
|
+
iterCount = me.currentIteration;
|
|
425
|
+
|
|
426
|
+
iterCount++;
|
|
427
|
+
if (iterCount < iter) {
|
|
428
|
+
if (me.alternate) {
|
|
429
|
+
me.reverse = !me.reverse;
|
|
430
|
+
}
|
|
431
|
+
me.startTime = new Date();
|
|
432
|
+
me.currentIteration = iterCount;
|
|
433
|
+
// Turn off paused for CSS3 Transitions
|
|
434
|
+
me.paused = false;
|
|
435
|
+
}
|
|
436
|
+
else {
|
|
437
|
+
me.currentIteration = 0;
|
|
438
|
+
me.end();
|
|
439
|
+
me.fireEvent('lastframe', me, me.startTime);
|
|
440
|
+
}
|
|
441
|
+
},
|
|
442
|
+
|
|
443
|
+
endWasCalled: 0,
|
|
444
|
+
|
|
445
|
+
/**
|
|
446
|
+
* Fire afteranimate event and end the animation. Usually called automatically when the
|
|
447
|
+
* animation reaches its final frame, but can also be called manually to pre-emptively
|
|
448
|
+
* stop and destroy the running animation.
|
|
449
|
+
*/
|
|
450
|
+
end: function() {
|
|
451
|
+
if (this.endWasCalled++) {
|
|
452
|
+
return;
|
|
453
|
+
}
|
|
454
|
+
var me = this;
|
|
455
|
+
me.startTime = 0;
|
|
456
|
+
me.paused = false;
|
|
457
|
+
me.running = false;
|
|
458
|
+
Ext.fx.Manager.removeAnim(me);
|
|
459
|
+
me.fireEvent('afteranimate', me, me.startTime);
|
|
460
|
+
Ext.callback(me.callback, me.scope, [me, me.startTime]);
|
|
461
|
+
},
|
|
462
|
+
|
|
463
|
+
isReady: function() {
|
|
464
|
+
return this.paused === false && this.running === false && this.iterations > 0;
|
|
465
|
+
},
|
|
466
|
+
|
|
467
|
+
isRunning: function() {
|
|
468
|
+
return this.paused === false && this.running === true && this.isAnimator !== true;
|
|
469
|
+
}
|
|
470
|
+
});
|
|
471
|
+
// Set flag to indicate that Fx is available. Class might not be available immediately.
|
|
472
|
+
Ext.enableFx = true;
|