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,356 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @class Ext.dom.AbstractElement
|
|
3
|
+
*/
|
|
4
|
+
(function(){
|
|
5
|
+
|
|
6
|
+
var Element = Ext.dom.AbstractElement;
|
|
7
|
+
|
|
8
|
+
Element.override({
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Gets the current X position of the element based on page coordinates. Element must be part of the DOM
|
|
12
|
+
* tree to have page coordinates (display:none or elements not appended return false).
|
|
13
|
+
* @return {Number} The X position of the element
|
|
14
|
+
*/
|
|
15
|
+
getX: function(el) {
|
|
16
|
+
return this.getXY(el)[0];
|
|
17
|
+
},
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Gets the current Y position of the element based on page coordinates. Element must be part of the DOM
|
|
21
|
+
* tree to have page coordinates (display:none or elements not appended return false).
|
|
22
|
+
* @return {Number} The Y position of the element
|
|
23
|
+
*/
|
|
24
|
+
getY: function(el) {
|
|
25
|
+
return this.getXY(el)[1];
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Gets the current position of the element based on page coordinates. Element must be part of the DOM
|
|
30
|
+
* tree to have page coordinates (display:none or elements not appended return false).
|
|
31
|
+
* @return {Array} The XY position of the element
|
|
32
|
+
*/
|
|
33
|
+
getXY: function() {
|
|
34
|
+
// @FEATUREDETECT
|
|
35
|
+
var point = window.webkitConvertPointFromNodeToPage(this.dom, new WebKitPoint(0, 0));
|
|
36
|
+
return [point.x, point.y];
|
|
37
|
+
},
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Returns the offsets of this element from the passed element. Both element must be part of the DOM
|
|
41
|
+
* tree and not have display:none to have page coordinates.
|
|
42
|
+
* @param {Ext.Element/HTMLElement/String} element The element to get the offsets from.
|
|
43
|
+
* @return {Array} The XY page offsets (e.g. [100, -200])
|
|
44
|
+
*/
|
|
45
|
+
getOffsetsTo: function(el){
|
|
46
|
+
var o = this.getXY(),
|
|
47
|
+
e = Ext.fly(el, '_internal').getXY();
|
|
48
|
+
return [o[0]-e[0],o[1]-e[1]];
|
|
49
|
+
},
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Sets the X position of the element based on page coordinates. Element must be part of the DOM tree
|
|
53
|
+
* to have page coordinates (display:none or elements not appended return false).
|
|
54
|
+
* @param {Number} The X position of the element
|
|
55
|
+
* @param {Boolean/Object} [animate] True for the default animation, or a standard Element
|
|
56
|
+
* animation config object
|
|
57
|
+
* @return {Ext.dom.AbstractElement} this
|
|
58
|
+
*/
|
|
59
|
+
setX: function(x){
|
|
60
|
+
return this.setXY([x, this.getY()]);
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Sets the Y position of the element based on page coordinates. Element must be part of the DOM tree
|
|
65
|
+
* to have page coordinates (display:none or elements not appended return false).
|
|
66
|
+
* @param {Number} The Y position of the element
|
|
67
|
+
* @param {Boolean/Object} [animate] True for the default animation, or a standard Element
|
|
68
|
+
* animation config object
|
|
69
|
+
* @return {Ext.dom.AbstractElement} this
|
|
70
|
+
*/
|
|
71
|
+
setY: function(y) {
|
|
72
|
+
return this.setXY([this.getX(), y]);
|
|
73
|
+
},
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Sets the element's left position directly using CSS style (instead of {@link #setX}).
|
|
77
|
+
* @param {String} left The left CSS property value
|
|
78
|
+
* @return {Ext.dom.AbstractElement} this
|
|
79
|
+
*/
|
|
80
|
+
setLeft: function(left) {
|
|
81
|
+
this.setStyle('left', Element.addUnits(left));
|
|
82
|
+
return this;
|
|
83
|
+
},
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Sets the element's top position directly using CSS style (instead of {@link #setY}).
|
|
87
|
+
* @param {String} top The top CSS property value
|
|
88
|
+
* @return {Ext.dom.AbstractElement} this
|
|
89
|
+
*/
|
|
90
|
+
setTop: function(top) {
|
|
91
|
+
this.setStyle('top', Element.addUnits(top));
|
|
92
|
+
return this;
|
|
93
|
+
},
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Sets the element's CSS right style.
|
|
97
|
+
* @param {String} right The right CSS property value
|
|
98
|
+
* @return {Ext.dom.AbstractElement} this
|
|
99
|
+
*/
|
|
100
|
+
setRight: function(right) {
|
|
101
|
+
this.setStyle('right', Element.addUnits(right));
|
|
102
|
+
return this;
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Sets the element's CSS bottom style.
|
|
107
|
+
* @param {String} bottom The bottom CSS property value
|
|
108
|
+
* @return {Ext.dom.AbstractElement} this
|
|
109
|
+
*/
|
|
110
|
+
setBottom: function(bottom) {
|
|
111
|
+
this.setStyle('bottom', Element.addUnits(bottom));
|
|
112
|
+
return this;
|
|
113
|
+
},
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Sets the position of the element in page coordinates, regardless of how the element is positioned.
|
|
117
|
+
* The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).
|
|
118
|
+
* @param {Array} pos Contains X & Y [x, y] values for new position (coordinates are page-based)
|
|
119
|
+
* @param {Boolean/Object} [animate] True for the default animation, or a standard Element animation config object
|
|
120
|
+
* @return {Ext.dom.AbstractElement} this
|
|
121
|
+
*/
|
|
122
|
+
setXY: function(pos) {
|
|
123
|
+
var me = this,
|
|
124
|
+
pts,
|
|
125
|
+
style,
|
|
126
|
+
pt;
|
|
127
|
+
|
|
128
|
+
if (arguments.length > 1) {
|
|
129
|
+
pos = [pos, arguments[1]];
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// me.position();
|
|
133
|
+
pts = me.translatePoints(pos);
|
|
134
|
+
style = me.dom.style;
|
|
135
|
+
|
|
136
|
+
for (pt in pts) {
|
|
137
|
+
if (!pts.hasOwnProperty(pt)) {
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
if (!isNaN(pts[pt])) {
|
|
141
|
+
style[pt] = pts[pt] + "px";
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return me;
|
|
145
|
+
},
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Gets the left X coordinate
|
|
149
|
+
* @param {Boolean} local True to get the local css position instead of page coordinate
|
|
150
|
+
* @return {Number}
|
|
151
|
+
*/
|
|
152
|
+
getLeft: function(local) {
|
|
153
|
+
return parseInt(this.getStyle('left'), 10) || 0;
|
|
154
|
+
},
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Gets the right X coordinate of the element (element X position + element width)
|
|
158
|
+
* @param {Boolean} local True to get the local css position instead of page coordinate
|
|
159
|
+
* @return {Number}
|
|
160
|
+
*/
|
|
161
|
+
getRight: function(local) {
|
|
162
|
+
return parseInt(this.getStyle('right'), 10) || 0;
|
|
163
|
+
},
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Gets the top Y coordinate
|
|
167
|
+
* @param {Boolean} local True to get the local css position instead of page coordinate
|
|
168
|
+
* @return {Number}
|
|
169
|
+
*/
|
|
170
|
+
getTop: function(local) {
|
|
171
|
+
return parseInt(this.getStyle('top'), 10) || 0;
|
|
172
|
+
},
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Gets the bottom Y coordinate of the element (element Y position + element height)
|
|
176
|
+
* @param {Boolean} local True to get the local css position instead of page coordinate
|
|
177
|
+
* @return {Number}
|
|
178
|
+
*/
|
|
179
|
+
getBottom: function(local) {
|
|
180
|
+
return parseInt(this.getStyle('bottom'), 10) || 0;
|
|
181
|
+
},
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Translates the passed page coordinates into left/top css values for this element
|
|
185
|
+
* @param {Number/Array} x The page x or an array containing [x, y]
|
|
186
|
+
* @param {Number} [y] The page y, required if x is not an array
|
|
187
|
+
* @return {Object} An object with left and top properties. e.g. {left: (value), top: (value)}
|
|
188
|
+
*/
|
|
189
|
+
translatePoints: function(x, y) {
|
|
190
|
+
y = isNaN(x[1]) ? y : x[1];
|
|
191
|
+
x = isNaN(x[0]) ? x : x[0];
|
|
192
|
+
var me = this,
|
|
193
|
+
relative = me.isStyle('position', 'relative'),
|
|
194
|
+
o = me.getXY(),
|
|
195
|
+
l = parseInt(me.getStyle('left'), 10),
|
|
196
|
+
t = parseInt(me.getStyle('top'), 10);
|
|
197
|
+
|
|
198
|
+
l = !isNaN(l) ? l : (relative ? 0 : me.dom.offsetLeft);
|
|
199
|
+
t = !isNaN(t) ? t : (relative ? 0 : me.dom.offsetTop);
|
|
200
|
+
|
|
201
|
+
return {left: (x - o[0] + l), top: (y - o[1] + t)};
|
|
202
|
+
},
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Sets the element's box. Use getBox() on another element to get a box obj.
|
|
206
|
+
* If animate is true then width, height, x and y will be animated concurrently.
|
|
207
|
+
* @param {Object} box The box to fill {x, y, width, height}
|
|
208
|
+
* @param {Boolean} [adjust] Whether to adjust for box-model issues automatically
|
|
209
|
+
* @param {Boolean/Object} [animate] true for the default animation or a standard
|
|
210
|
+
* Element animation config object
|
|
211
|
+
* @return {Ext.dom.AbstractElement} this
|
|
212
|
+
*/
|
|
213
|
+
setBox: function(box) {
|
|
214
|
+
var me = this,
|
|
215
|
+
width = box.width,
|
|
216
|
+
height = box.height,
|
|
217
|
+
top = box.top,
|
|
218
|
+
left = box.left;
|
|
219
|
+
|
|
220
|
+
if (left !== undefined) {
|
|
221
|
+
me.setLeft(left);
|
|
222
|
+
}
|
|
223
|
+
if (top !== undefined) {
|
|
224
|
+
me.setTop(top);
|
|
225
|
+
}
|
|
226
|
+
if (width !== undefined) {
|
|
227
|
+
me.setWidth(width);
|
|
228
|
+
}
|
|
229
|
+
if (height !== undefined) {
|
|
230
|
+
me.setHeight(height);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
return this;
|
|
234
|
+
},
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Return an object defining the area of this Element which can be passed to {@link #setBox} to
|
|
238
|
+
* set another Element's size/location to match this element.
|
|
239
|
+
*
|
|
240
|
+
* @param {Boolean} [contentBox] If true a box for the content of the element is returned.
|
|
241
|
+
* @param {Boolean} [local] If true the element's left and top are returned instead of page x/y.
|
|
242
|
+
* @return {Object} box An object in the format:
|
|
243
|
+
*
|
|
244
|
+
* {
|
|
245
|
+
* x: <Element's X position>,
|
|
246
|
+
* y: <Element's Y position>,
|
|
247
|
+
* width: <Element's width>,
|
|
248
|
+
* height: <Element's height>,
|
|
249
|
+
* bottom: <Element's lower bound>,
|
|
250
|
+
* right: <Element's rightmost bound>
|
|
251
|
+
* }
|
|
252
|
+
*
|
|
253
|
+
* The returned object may also be addressed as an Array where index 0 contains the X position
|
|
254
|
+
* and index 1 contains the Y position. So the result may also be used for {@link #setXY}
|
|
255
|
+
*/
|
|
256
|
+
getBox: function(contentBox, local) {
|
|
257
|
+
var me = this,
|
|
258
|
+
dom = me.dom,
|
|
259
|
+
width = dom.offsetWidth,
|
|
260
|
+
height = dom.offsetHeight,
|
|
261
|
+
xy, box, l, r, t, b;
|
|
262
|
+
|
|
263
|
+
if (!local) {
|
|
264
|
+
xy = me.getXY();
|
|
265
|
+
}
|
|
266
|
+
else if (contentBox) {
|
|
267
|
+
xy = [0,0];
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
xy = [parseInt(me.getStyle("left"), 10) || 0, parseInt(me.getStyle("top"), 10) || 0];
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
if (!contentBox) {
|
|
274
|
+
box = {
|
|
275
|
+
x: xy[0],
|
|
276
|
+
y: xy[1],
|
|
277
|
+
0: xy[0],
|
|
278
|
+
1: xy[1],
|
|
279
|
+
width: width,
|
|
280
|
+
height: height
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
l = me.getBorderWidth.call(me, "l") + me.getPadding.call(me, "l");
|
|
285
|
+
r = me.getBorderWidth.call(me, "r") + me.getPadding.call(me, "r");
|
|
286
|
+
t = me.getBorderWidth.call(me, "t") + me.getPadding.call(me, "t");
|
|
287
|
+
b = me.getBorderWidth.call(me, "b") + me.getPadding.call(me, "b");
|
|
288
|
+
box = {
|
|
289
|
+
x: xy[0] + l,
|
|
290
|
+
y: xy[1] + t,
|
|
291
|
+
0: xy[0] + l,
|
|
292
|
+
1: xy[1] + t,
|
|
293
|
+
width: width - (l + r),
|
|
294
|
+
height: height - (t + b)
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
box.left = box.x;
|
|
299
|
+
box.top = box.y;
|
|
300
|
+
box.right = box.x + box.width;
|
|
301
|
+
box.bottom = box.y + box.height;
|
|
302
|
+
|
|
303
|
+
return box;
|
|
304
|
+
},
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Return an object defining the area of this Element which can be passed to {@link #setBox} to
|
|
308
|
+
* set another Element's size/location to match this element.
|
|
309
|
+
*
|
|
310
|
+
* @param {Boolean} [asRegion] If true an Ext.util.Region will be returned
|
|
311
|
+
* @return {Object} box An object in the format
|
|
312
|
+
*
|
|
313
|
+
* {
|
|
314
|
+
* x: <Element's X position>,
|
|
315
|
+
* y: <Element's Y position>,
|
|
316
|
+
* width: <Element's width>,
|
|
317
|
+
* height: <Element's height>,
|
|
318
|
+
* bottom: <Element's lower bound>,
|
|
319
|
+
* right: <Element's rightmost bound>
|
|
320
|
+
* }
|
|
321
|
+
*
|
|
322
|
+
* The returned object may also be addressed as an Array where index 0 contains the X position
|
|
323
|
+
* and index 1 contains the Y position. So the result may also be used for {@link #setXY}
|
|
324
|
+
*/
|
|
325
|
+
getPageBox: function(getRegion) {
|
|
326
|
+
var me = this,
|
|
327
|
+
el = me.dom,
|
|
328
|
+
w = el.offsetWidth,
|
|
329
|
+
h = el.offsetHeight,
|
|
330
|
+
xy = me.getXY(),
|
|
331
|
+
t = xy[1],
|
|
332
|
+
r = xy[0] + w,
|
|
333
|
+
b = xy[1] + h,
|
|
334
|
+
l = xy[0];
|
|
335
|
+
|
|
336
|
+
if (!el) {
|
|
337
|
+
return new Ext.util.Region();
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
if (getRegion) {
|
|
341
|
+
return new Ext.util.Region(t, r, b, l);
|
|
342
|
+
}
|
|
343
|
+
else {
|
|
344
|
+
return {
|
|
345
|
+
left: l,
|
|
346
|
+
top: t,
|
|
347
|
+
width: w,
|
|
348
|
+
height: h,
|
|
349
|
+
right: r,
|
|
350
|
+
bottom: b
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
});
|
|
355
|
+
|
|
356
|
+
}());
|
|
@@ -0,0 +1,474 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @class Ext.dom.AbstractElement
|
|
3
|
+
*/
|
|
4
|
+
Ext.dom.AbstractElement.addInheritableStatics({
|
|
5
|
+
unitRe: /\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i,
|
|
6
|
+
camelRe: /(-[a-z])/gi,
|
|
7
|
+
cssRe: /([a-z0-9\-]+)\s*:\s*([^;\s]+(?:\s*[^;\s]+)*);?/gi,
|
|
8
|
+
opacityRe: /alpha\(opacity=(.*)\)/i,
|
|
9
|
+
propertyCache: {},
|
|
10
|
+
defaultUnit : "px",
|
|
11
|
+
borders: {l: 'border-left-width', r: 'border-right-width', t: 'border-top-width', b: 'border-bottom-width'},
|
|
12
|
+
paddings: {l: 'padding-left', r: 'padding-right', t: 'padding-top', b: 'padding-bottom'},
|
|
13
|
+
margins: {l: 'margin-left', r: 'margin-right', t: 'margin-top', b: 'margin-bottom'},
|
|
14
|
+
/**
|
|
15
|
+
* Test if size has a unit, otherwise appends the passed unit string, or the default for this Element.
|
|
16
|
+
* @param size {Object} The size to set
|
|
17
|
+
* @param units {String} The units to append to a numeric size value
|
|
18
|
+
* @private
|
|
19
|
+
* @static
|
|
20
|
+
*/
|
|
21
|
+
addUnits: function(size, units) {
|
|
22
|
+
// Most common case first: Size is set to a number
|
|
23
|
+
if (typeof size == 'number') {
|
|
24
|
+
return size + (units || this.defaultUnit || 'px');
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Size set to a value which means "auto"
|
|
28
|
+
if (size === "" || size == "auto" || size === undefined || size === null) {
|
|
29
|
+
return size || '';
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Otherwise, warn if it's not a valid CSS measurement
|
|
33
|
+
if (!this.unitRe.test(size)) {
|
|
34
|
+
//<debug>
|
|
35
|
+
if (Ext.isDefined(Ext.global.console)) {
|
|
36
|
+
Ext.global.console.warn("Warning, size detected as NaN on Element.addUnits.");
|
|
37
|
+
}
|
|
38
|
+
//</debug>
|
|
39
|
+
return size || '';
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return size;
|
|
43
|
+
},
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* @static
|
|
47
|
+
* @private
|
|
48
|
+
*/
|
|
49
|
+
isAncestor: function(p, c) {
|
|
50
|
+
var ret = false;
|
|
51
|
+
|
|
52
|
+
p = Ext.getDom(p);
|
|
53
|
+
c = Ext.getDom(c);
|
|
54
|
+
if (p && c) {
|
|
55
|
+
if (p.contains) {
|
|
56
|
+
return p.contains(c);
|
|
57
|
+
} else if (p.compareDocumentPosition) {
|
|
58
|
+
return !!(p.compareDocumentPosition(c) & 16);
|
|
59
|
+
} else {
|
|
60
|
+
while ((c = c.parentNode)) {
|
|
61
|
+
ret = c == p || ret;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return ret;
|
|
66
|
+
},
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Parses a number or string representing margin sizes into an object. Supports CSS-style margin declarations
|
|
70
|
+
* (e.g. 10, "10", "10 10", "10 10 10" and "10 10 10 10" are all valid options and would return the same result)
|
|
71
|
+
* @static
|
|
72
|
+
* @param {Number/String} box The encoded margins
|
|
73
|
+
* @return {Object} An object with margin sizes for top, right, bottom and left
|
|
74
|
+
*/
|
|
75
|
+
parseBox: function(box) {
|
|
76
|
+
if (typeof box != 'string') {
|
|
77
|
+
box = box.toString();
|
|
78
|
+
}
|
|
79
|
+
var parts = box.split(' '),
|
|
80
|
+
ln = parts.length;
|
|
81
|
+
|
|
82
|
+
if (ln == 1) {
|
|
83
|
+
parts[1] = parts[2] = parts[3] = parts[0];
|
|
84
|
+
}
|
|
85
|
+
else if (ln == 2) {
|
|
86
|
+
parts[2] = parts[0];
|
|
87
|
+
parts[3] = parts[1];
|
|
88
|
+
}
|
|
89
|
+
else if (ln == 3) {
|
|
90
|
+
parts[3] = parts[1];
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return {
|
|
94
|
+
top :parseFloat(parts[0]) || 0,
|
|
95
|
+
right :parseFloat(parts[1]) || 0,
|
|
96
|
+
bottom:parseFloat(parts[2]) || 0,
|
|
97
|
+
left :parseFloat(parts[3]) || 0
|
|
98
|
+
};
|
|
99
|
+
},
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Parses a number or string representing margin sizes into an object. Supports CSS-style margin declarations
|
|
103
|
+
* (e.g. 10, "10", "10 10", "10 10 10" and "10 10 10 10" are all valid options and would return the same result)
|
|
104
|
+
* @static
|
|
105
|
+
* @param {Number/String} box The encoded margins
|
|
106
|
+
* @param {String} units The type of units to add
|
|
107
|
+
* @return {String} An string with unitized (px if units is not specified) metrics for top, right, bottom and left
|
|
108
|
+
*/
|
|
109
|
+
unitizeBox: function(box, units) {
|
|
110
|
+
var a = this.addUnits,
|
|
111
|
+
b = this.parseBox(box);
|
|
112
|
+
|
|
113
|
+
return a(b.top, units) + ' ' +
|
|
114
|
+
a(b.right, units) + ' ' +
|
|
115
|
+
a(b.bottom, units) + ' ' +
|
|
116
|
+
a(b.left, units);
|
|
117
|
+
|
|
118
|
+
},
|
|
119
|
+
|
|
120
|
+
// private
|
|
121
|
+
camelReplaceFn: function(m, a) {
|
|
122
|
+
return a.charAt(1).toUpperCase();
|
|
123
|
+
},
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Normalizes CSS property keys from dash delimited to camel case JavaScript Syntax.
|
|
127
|
+
* For example:
|
|
128
|
+
*
|
|
129
|
+
* - border-width -> borderWidth
|
|
130
|
+
* - padding-top -> paddingTop
|
|
131
|
+
*
|
|
132
|
+
* @static
|
|
133
|
+
* @param {String} prop The property to normalize
|
|
134
|
+
* @return {String} The normalized string
|
|
135
|
+
*/
|
|
136
|
+
normalize: function(prop) {
|
|
137
|
+
// TODO: Mobile optimization?
|
|
138
|
+
if (prop == 'float') {
|
|
139
|
+
prop = Ext.supports.Float ? 'cssFloat' : 'styleFloat';
|
|
140
|
+
}
|
|
141
|
+
return this.propertyCache[prop] || (this.propertyCache[prop] = prop.replace(this.camelRe, this.camelReplaceFn));
|
|
142
|
+
},
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Retrieves the document height
|
|
146
|
+
* @static
|
|
147
|
+
* @return {Number} documentHeight
|
|
148
|
+
*/
|
|
149
|
+
getDocumentHeight: function() {
|
|
150
|
+
return Math.max(!Ext.isStrict ? document.body.scrollHeight : document.documentElement.scrollHeight, this.getViewportHeight());
|
|
151
|
+
},
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Retrieves the document width
|
|
155
|
+
* @static
|
|
156
|
+
* @return {Number} documentWidth
|
|
157
|
+
*/
|
|
158
|
+
getDocumentWidth: function() {
|
|
159
|
+
return Math.max(!Ext.isStrict ? document.body.scrollWidth : document.documentElement.scrollWidth, this.getViewportWidth());
|
|
160
|
+
},
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Retrieves the viewport height of the window.
|
|
164
|
+
* @static
|
|
165
|
+
* @return {Number} viewportHeight
|
|
166
|
+
*/
|
|
167
|
+
getViewportHeight: function(){
|
|
168
|
+
return window.innerHeight;
|
|
169
|
+
},
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Retrieves the viewport width of the window.
|
|
173
|
+
* @static
|
|
174
|
+
* @return {Number} viewportWidth
|
|
175
|
+
*/
|
|
176
|
+
getViewportWidth: function() {
|
|
177
|
+
return window.innerWidth;
|
|
178
|
+
},
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Retrieves the viewport size of the window.
|
|
182
|
+
* @static
|
|
183
|
+
* @return {Object} object containing width and height properties
|
|
184
|
+
*/
|
|
185
|
+
getViewSize: function() {
|
|
186
|
+
return {
|
|
187
|
+
width: window.innerWidth,
|
|
188
|
+
height: window.innerHeight
|
|
189
|
+
};
|
|
190
|
+
},
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Retrieves the current orientation of the window. This is calculated by
|
|
194
|
+
* determing if the height is greater than the width.
|
|
195
|
+
* @static
|
|
196
|
+
* @return {String} Orientation of window: 'portrait' or 'landscape'
|
|
197
|
+
*/
|
|
198
|
+
getOrientation: function() {
|
|
199
|
+
if (Ext.supports.OrientationChange) {
|
|
200
|
+
return (window.orientation == 0) ? 'portrait' : 'landscape';
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
return (window.innerHeight > window.innerWidth) ? 'portrait' : 'landscape';
|
|
204
|
+
},
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Returns the top Element that is located at the passed coordinates
|
|
208
|
+
* @static
|
|
209
|
+
* @param {Number} x The x coordinate
|
|
210
|
+
* @param {Number} y The y coordinate
|
|
211
|
+
* @return {String} The found Element
|
|
212
|
+
*/
|
|
213
|
+
fromPoint: function(x, y) {
|
|
214
|
+
return Ext.get(document.elementFromPoint(x, y));
|
|
215
|
+
},
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Converts a CSS string into an object with a property for each style.
|
|
219
|
+
*
|
|
220
|
+
* The sample code below would return an object with 2 properties, one
|
|
221
|
+
* for background-color and one for color.
|
|
222
|
+
*
|
|
223
|
+
* var css = 'background-color: red;color: blue; ';
|
|
224
|
+
* console.log(Ext.dom.Element.parseStyles(css));
|
|
225
|
+
*
|
|
226
|
+
* @static
|
|
227
|
+
* @param {String} styles A CSS string
|
|
228
|
+
* @return {Object} styles
|
|
229
|
+
*/
|
|
230
|
+
parseStyles: function(styles){
|
|
231
|
+
var out = {},
|
|
232
|
+
cssRe = this.cssRe,
|
|
233
|
+
matches;
|
|
234
|
+
|
|
235
|
+
if (styles) {
|
|
236
|
+
// Since we're using the g flag on the regex, we need to set the lastIndex.
|
|
237
|
+
// This automatically happens on some implementations, but not others, see:
|
|
238
|
+
// http://stackoverflow.com/questions/2645273/javascript-regular-expression-literal-persists-between-function-calls
|
|
239
|
+
// http://blog.stevenlevithan.com/archives/fixing-javascript-regexp
|
|
240
|
+
cssRe.lastIndex = 0;
|
|
241
|
+
while ((matches = cssRe.exec(styles))) {
|
|
242
|
+
out[matches[1]] = matches[2];
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
return out;
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
//TODO Need serious cleanups
|
|
250
|
+
(function(){
|
|
251
|
+
var doc = document,
|
|
252
|
+
AbstractElement = Ext.dom.AbstractElement,
|
|
253
|
+
activeElement = null,
|
|
254
|
+
isCSS1 = doc.compatMode == "CSS1Compat",
|
|
255
|
+
flyInstance,
|
|
256
|
+
fly = function (el) {
|
|
257
|
+
if (!flyInstance) {
|
|
258
|
+
flyInstance = new AbstractElement.Fly();
|
|
259
|
+
}
|
|
260
|
+
flyInstance.attach(el);
|
|
261
|
+
return flyInstance;
|
|
262
|
+
};
|
|
263
|
+
|
|
264
|
+
// If the browser does not support document.activeElement we need some assistance.
|
|
265
|
+
// This covers old Safari 3.2 (4.0 added activeElement along with just about all
|
|
266
|
+
// other browsers). We need this support to handle issues with old Safari.
|
|
267
|
+
if (!('activeElement' in doc) && doc.addEventListener) {
|
|
268
|
+
doc.addEventListener('focus',
|
|
269
|
+
function (ev) {
|
|
270
|
+
if (ev && ev.target) {
|
|
271
|
+
activeElement = (ev.target == doc) ? null : ev.target;
|
|
272
|
+
}
|
|
273
|
+
}, true);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
/*
|
|
277
|
+
* Helper function to create the function that will restore the selection.
|
|
278
|
+
*/
|
|
279
|
+
function makeSelectionRestoreFn (activeEl, start, end) {
|
|
280
|
+
return function () {
|
|
281
|
+
activeEl.selectionStart = start;
|
|
282
|
+
activeEl.selectionEnd = end;
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
AbstractElement.addInheritableStatics({
|
|
287
|
+
/**
|
|
288
|
+
* Returns the active element in the DOM. If the browser supports activeElement
|
|
289
|
+
* on the document, this is returned. If not, the focus is tracked and the active
|
|
290
|
+
* element is maintained internally.
|
|
291
|
+
* @return {HTMLElement} The active (focused) element in the document.
|
|
292
|
+
*/
|
|
293
|
+
getActiveElement: function () {
|
|
294
|
+
return doc.activeElement || activeElement;
|
|
295
|
+
},
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Creates a function to call to clean up problems with the work-around for the
|
|
299
|
+
* WebKit RightMargin bug. The work-around is to add "display: 'inline-block'" to
|
|
300
|
+
* the element before calling getComputedStyle and then to restore its original
|
|
301
|
+
* display value. The problem with this is that it corrupts the selection of an
|
|
302
|
+
* INPUT or TEXTAREA element (as in the "I-beam" goes away but ths focus remains).
|
|
303
|
+
* To cleanup after this, we need to capture the selection of any such element and
|
|
304
|
+
* then restore it after we have restored the display style.
|
|
305
|
+
*
|
|
306
|
+
* @param {Ext.dom.Element} target The top-most element being adjusted.
|
|
307
|
+
* @private
|
|
308
|
+
*/
|
|
309
|
+
getRightMarginFixCleaner: function (target) {
|
|
310
|
+
var supports = Ext.supports,
|
|
311
|
+
hasInputBug = supports.DisplayChangeInputSelectionBug,
|
|
312
|
+
hasTextAreaBug = supports.DisplayChangeTextAreaSelectionBug,
|
|
313
|
+
activeEl,
|
|
314
|
+
tag,
|
|
315
|
+
start,
|
|
316
|
+
end;
|
|
317
|
+
|
|
318
|
+
if (hasInputBug || hasTextAreaBug) {
|
|
319
|
+
activeEl = doc.activeElement || activeElement; // save a call
|
|
320
|
+
tag = activeEl && activeEl.tagName;
|
|
321
|
+
|
|
322
|
+
if ((hasTextAreaBug && tag == 'TEXTAREA') ||
|
|
323
|
+
(hasInputBug && tag == 'INPUT' && activeEl.type == 'text')) {
|
|
324
|
+
if (Ext.dom.Element.isAncestor(target, activeEl)) {
|
|
325
|
+
start = activeEl.selectionStart;
|
|
326
|
+
end = activeEl.selectionEnd;
|
|
327
|
+
|
|
328
|
+
if (Ext.isNumber(start) && Ext.isNumber(end)) { // to be safe...
|
|
329
|
+
// We don't create the raw closure here inline because that
|
|
330
|
+
// will be costly even if we don't want to return it (nested
|
|
331
|
+
// function decls and exprs are often instantiated on entry
|
|
332
|
+
// regardless of whether execution ever reaches them):
|
|
333
|
+
return makeSelectionRestoreFn(activeEl, start, end);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
return Ext.emptyFn; // avoid special cases, just return a nop
|
|
340
|
+
},
|
|
341
|
+
|
|
342
|
+
getViewWidth: function(full) {
|
|
343
|
+
return full ? Ext.dom.Element.getDocumentWidth() : Ext.dom.Element.getViewportWidth();
|
|
344
|
+
},
|
|
345
|
+
|
|
346
|
+
getViewHeight: function(full) {
|
|
347
|
+
return full ? Ext.dom.Element.getDocumentHeight() : Ext.dom.Element.getViewportHeight();
|
|
348
|
+
},
|
|
349
|
+
|
|
350
|
+
getDocumentHeight: function() {
|
|
351
|
+
return Math.max(!isCSS1 ? doc.body.scrollHeight : doc.documentElement.scrollHeight, Ext.dom.Element.getViewportHeight());
|
|
352
|
+
},
|
|
353
|
+
|
|
354
|
+
getDocumentWidth: function() {
|
|
355
|
+
return Math.max(!isCSS1 ? doc.body.scrollWidth : doc.documentElement.scrollWidth, Ext.dom.Element.getViewportWidth());
|
|
356
|
+
},
|
|
357
|
+
|
|
358
|
+
getViewportHeight: function(){
|
|
359
|
+
return Ext.isIE ?
|
|
360
|
+
(Ext.isStrict ? doc.documentElement.clientHeight : doc.body.clientHeight) :
|
|
361
|
+
self.innerHeight;
|
|
362
|
+
},
|
|
363
|
+
|
|
364
|
+
getViewportWidth: function() {
|
|
365
|
+
return (!Ext.isStrict && !Ext.isOpera) ? doc.body.clientWidth :
|
|
366
|
+
Ext.isIE ? doc.documentElement.clientWidth : self.innerWidth;
|
|
367
|
+
},
|
|
368
|
+
|
|
369
|
+
getY: function(el) {
|
|
370
|
+
return Ext.dom.Element.getXY(el)[1];
|
|
371
|
+
},
|
|
372
|
+
|
|
373
|
+
getX: function(el) {
|
|
374
|
+
return Ext.dom.Element.getXY(el)[0];
|
|
375
|
+
},
|
|
376
|
+
|
|
377
|
+
getXY: function(el) {
|
|
378
|
+
var bd = doc.body,
|
|
379
|
+
docEl = doc.documentElement,
|
|
380
|
+
leftBorder = 0,
|
|
381
|
+
topBorder = 0,
|
|
382
|
+
ret = [0,0],
|
|
383
|
+
round = Math.round,
|
|
384
|
+
box,
|
|
385
|
+
scroll;
|
|
386
|
+
|
|
387
|
+
el = Ext.getDom(el);
|
|
388
|
+
|
|
389
|
+
if(el != doc && el != bd){
|
|
390
|
+
// IE has the potential to throw when getBoundingClientRect called
|
|
391
|
+
// on element not attached to dom
|
|
392
|
+
if (Ext.isIE) {
|
|
393
|
+
try {
|
|
394
|
+
box = el.getBoundingClientRect();
|
|
395
|
+
// In some versions of IE, the documentElement (HTML element) will have a 2px border that gets included, so subtract it off
|
|
396
|
+
topBorder = docEl.clientTop || bd.clientTop;
|
|
397
|
+
leftBorder = docEl.clientLeft || bd.clientLeft;
|
|
398
|
+
} catch (ex) {
|
|
399
|
+
box = { left: 0, top: 0 };
|
|
400
|
+
}
|
|
401
|
+
} else {
|
|
402
|
+
box = el.getBoundingClientRect();
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
scroll = fly(document).getScroll();
|
|
406
|
+
ret = [round(box.left + scroll.left - leftBorder), round(box.top + scroll.top - topBorder)];
|
|
407
|
+
}
|
|
408
|
+
return ret;
|
|
409
|
+
},
|
|
410
|
+
|
|
411
|
+
setXY: function(el, xy) {
|
|
412
|
+
(el = Ext.fly(el, '_setXY')).position();
|
|
413
|
+
|
|
414
|
+
var pts = el.translatePoints(xy),
|
|
415
|
+
style = el.dom.style,
|
|
416
|
+
pos;
|
|
417
|
+
|
|
418
|
+
for (pos in pts) {
|
|
419
|
+
if (!isNaN(pts[pos])) {
|
|
420
|
+
style[pos] = pts[pos] + "px";
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
},
|
|
424
|
+
|
|
425
|
+
setX: function(el, x) {
|
|
426
|
+
Ext.dom.Element.setXY(el, [x, false]);
|
|
427
|
+
},
|
|
428
|
+
|
|
429
|
+
setY: function(el, y) {
|
|
430
|
+
Ext.dom.Element.setXY(el, [false, y]);
|
|
431
|
+
},
|
|
432
|
+
|
|
433
|
+
/**
|
|
434
|
+
* Serializes a DOM form into a url encoded string
|
|
435
|
+
* @param {Object} form The form
|
|
436
|
+
* @return {String} The url encoded form
|
|
437
|
+
*/
|
|
438
|
+
serializeForm: function(form) {
|
|
439
|
+
var fElements = form.elements || (document.forms[form] || Ext.getDom(form)).elements,
|
|
440
|
+
hasSubmit = false,
|
|
441
|
+
encoder = encodeURIComponent,
|
|
442
|
+
data = '',
|
|
443
|
+
eLen = fElements.length,
|
|
444
|
+
element, name, type, options, hasValue, e,
|
|
445
|
+
o, oLen, opt;
|
|
446
|
+
|
|
447
|
+
for (e = 0; e < eLen; e++) {
|
|
448
|
+
element = fElements[e];
|
|
449
|
+
name = element.name;
|
|
450
|
+
type = element.type;
|
|
451
|
+
options = element.options;
|
|
452
|
+
|
|
453
|
+
if (!element.disabled && name) {
|
|
454
|
+
if (/select-(one|multiple)/i.test(type)) {
|
|
455
|
+
oLen = options.length;
|
|
456
|
+
for (o = 0; o < oLen; o++) {
|
|
457
|
+
opt = options[o];
|
|
458
|
+
if (opt.selected) {
|
|
459
|
+
hasValue = opt.hasAttribute ? opt.hasAttribute('value') : opt.getAttributeNode('value').specified;
|
|
460
|
+
data += Ext.String.format("{0}={1}&", encoder(name), encoder(hasValue ? opt.value : opt.text));
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
} else if (!(/file|undefined|reset|button/i.test(type))) {
|
|
464
|
+
if (!(/radio|checkbox/i.test(type) && !element.checked) && !(type == 'submit' && hasSubmit)) {
|
|
465
|
+
data += encoder(name) + '=' + encoder(element.value) + '&';
|
|
466
|
+
hasSubmit = /submit/i.test(type);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
return data.substr(0, data.length - 1);
|
|
472
|
+
}
|
|
473
|
+
});
|
|
474
|
+
}());
|