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