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,321 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A mixin to add floating capability to a Component.
|
|
3
|
+
*/
|
|
4
|
+
Ext.define('Ext.util.Floating', {
|
|
5
|
+
|
|
6
|
+
uses: ['Ext.Layer', 'Ext.window.Window'],
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @cfg {Boolean} focusOnToFront
|
|
10
|
+
* Specifies whether the floated component should be automatically {@link Ext.Component#method-focus focused} when
|
|
11
|
+
* it is {@link #toFront brought to the front}.
|
|
12
|
+
*/
|
|
13
|
+
focusOnToFront: true,
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @cfg {String/Boolean} shadow
|
|
17
|
+
* Specifies whether the floating component should be given a shadow. Set to true to automatically create an
|
|
18
|
+
* {@link Ext.Shadow}, or a string indicating the shadow's display {@link Ext.Shadow#mode}. Set to false to
|
|
19
|
+
* disable the shadow.
|
|
20
|
+
*/
|
|
21
|
+
shadow: 'sides',
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @cfg {String/Boolean} shadowOffset
|
|
25
|
+
* Number of pixels to offset the shadow.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
constructor: function (dom) {
|
|
29
|
+
var me = this;
|
|
30
|
+
|
|
31
|
+
me.el = new Ext.Layer(Ext.apply({
|
|
32
|
+
hideMode : me.hideMode,
|
|
33
|
+
hidden : me.hidden,
|
|
34
|
+
shadow : (typeof me.shadow != 'undefined') ? me.shadow : 'sides',
|
|
35
|
+
shadowOffset : me.shadowOffset,
|
|
36
|
+
constrain : false,
|
|
37
|
+
shim : (me.shim === false) ? false : undefined
|
|
38
|
+
}, me.floating), dom);
|
|
39
|
+
|
|
40
|
+
// release config object (if it was one)
|
|
41
|
+
me.floating = true;
|
|
42
|
+
|
|
43
|
+
// Register with the configured ownerCt.
|
|
44
|
+
// With this we acquire a floatParent for relative positioning, and a zIndexParent which is an
|
|
45
|
+
// ancestor floater which provides zIndex management.
|
|
46
|
+
me.registerWithOwnerCt();
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
registerWithOwnerCt: function() {
|
|
50
|
+
var me = this;
|
|
51
|
+
|
|
52
|
+
if (me.zIndexParent) {
|
|
53
|
+
me.zIndexParent.unregisterFloatingItem(me);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// Acquire a zIndexParent by traversing the ownerCt axis for the nearest floating ancestor
|
|
57
|
+
me.zIndexParent = me.up('[floating]');
|
|
58
|
+
me.setFloatParent(me.ownerCt);
|
|
59
|
+
delete me.ownerCt;
|
|
60
|
+
|
|
61
|
+
if (me.zIndexParent) {
|
|
62
|
+
me.zIndexParent.registerFloatingItem(me);
|
|
63
|
+
} else {
|
|
64
|
+
Ext.WindowManager.register(me);
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
|
|
68
|
+
setFloatParent: function(floatParent) {
|
|
69
|
+
var me = this;
|
|
70
|
+
|
|
71
|
+
// Remove listeners from previous floatParent
|
|
72
|
+
if (me.floatParent) {
|
|
73
|
+
me.mun(me.floatParent, {
|
|
74
|
+
hide: me.onFloatParentHide,
|
|
75
|
+
show: me.onFloatParentShow,
|
|
76
|
+
scope: me
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
me.floatParent = floatParent;
|
|
81
|
+
|
|
82
|
+
// Floating Components as children of Containers must hide when their parent hides.
|
|
83
|
+
if (floatParent) {
|
|
84
|
+
me.mon(me.floatParent, {
|
|
85
|
+
hide: me.onFloatParentHide,
|
|
86
|
+
show: me.onFloatParentShow,
|
|
87
|
+
scope: me
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// If a floating Component is configured to be constrained, but has no configured
|
|
92
|
+
// constrainTo setting, set its constrainTo to be it's ownerCt before rendering.
|
|
93
|
+
if ((me.constrain || me.constrainHeader) && !me.constrainTo) {
|
|
94
|
+
me.constrainTo = floatParent ? floatParent.getTargetEl() : me.container;
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
|
|
98
|
+
onAfterFloatLayout: function(){
|
|
99
|
+
this.syncShadow();
|
|
100
|
+
},
|
|
101
|
+
|
|
102
|
+
onFloatParentHide: function() {
|
|
103
|
+
var me = this;
|
|
104
|
+
|
|
105
|
+
if (me.hideOnParentHide !== false && me.isVisible()) {
|
|
106
|
+
me.hide();
|
|
107
|
+
me.showOnParentShow = true;
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
|
|
111
|
+
onFloatParentShow: function() {
|
|
112
|
+
if (this.showOnParentShow) {
|
|
113
|
+
delete this.showOnParentShow;
|
|
114
|
+
this.show();
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
|
|
118
|
+
// private
|
|
119
|
+
// z-index is managed by the zIndexManager and may be overwritten at any time.
|
|
120
|
+
// Returns the next z-index to be used.
|
|
121
|
+
// If this is a Container, then it will have rebased any managed floating Components,
|
|
122
|
+
// and so the next available z-index will be approximately 10000 above that.
|
|
123
|
+
setZIndex: function(index) {
|
|
124
|
+
var me = this;
|
|
125
|
+
|
|
126
|
+
me.el.setZIndex(index);
|
|
127
|
+
|
|
128
|
+
// Next item goes 10 above;
|
|
129
|
+
index += 10;
|
|
130
|
+
|
|
131
|
+
// When a Container with floating items has its z-index set, it rebases any floating items it is managing.
|
|
132
|
+
// The returned value is a round number approximately 10000 above the last z-index used.
|
|
133
|
+
if (me.floatingItems) {
|
|
134
|
+
index = Math.floor(me.floatingItems.setBase(index) / 100) * 100 + 10000;
|
|
135
|
+
}
|
|
136
|
+
return index;
|
|
137
|
+
},
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Moves this floating Component into a constrain region.
|
|
141
|
+
*
|
|
142
|
+
* By default, this Component is constrained to be within the container it was added to, or the element it was
|
|
143
|
+
* rendered to.
|
|
144
|
+
*
|
|
145
|
+
* An alternative constraint may be passed.
|
|
146
|
+
* @param {String/HTMLElement/Ext.Element/Ext.util.Region} [constrainTo] The Element or {@link Ext.util.Region Region}
|
|
147
|
+
* into which this Component is to be constrained. Defaults to the element into which this floating Component
|
|
148
|
+
* was rendered.
|
|
149
|
+
*/
|
|
150
|
+
doConstrain: function(constrainTo) {
|
|
151
|
+
var me = this,
|
|
152
|
+
|
|
153
|
+
// Calculate the constrain vector to coerce our position to within our
|
|
154
|
+
// constrainTo setting. getConstrainVector will provide a default constraint
|
|
155
|
+
// region if there is no explicit constrainTo, *and* there is no floatParent owner Component.
|
|
156
|
+
vector = me.getConstrainVector(constrainTo),
|
|
157
|
+
xy;
|
|
158
|
+
|
|
159
|
+
if (vector) {
|
|
160
|
+
xy = me.getPosition();
|
|
161
|
+
xy[0] += vector[0];
|
|
162
|
+
xy[1] += vector[1];
|
|
163
|
+
me.setPosition(xy);
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Gets the x/y offsets to constrain this float
|
|
170
|
+
* @private
|
|
171
|
+
* @param {String/HTMLElement/Ext.Element/Ext.util.Region} [constrainTo] The Element or {@link Ext.util.Region Region}
|
|
172
|
+
* into which this Component is to be constrained.
|
|
173
|
+
* @return {Number[]} The x/y constraints
|
|
174
|
+
*/
|
|
175
|
+
getConstrainVector: function(constrainTo){
|
|
176
|
+
var me = this;
|
|
177
|
+
|
|
178
|
+
if (me.constrain || me.constrainHeader) {
|
|
179
|
+
constrainTo = constrainTo || (me.floatParent && me.floatParent.getTargetEl()) || me.container || me.el.getScopeParent();
|
|
180
|
+
return (me.constrainHeader ? me.header.el : me.el).getConstrainVector(constrainTo);
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Aligns this floating Component to the specified element
|
|
186
|
+
*
|
|
187
|
+
* @param {Ext.Component/Ext.Element/HTMLElement/String} element
|
|
188
|
+
* The element or {@link Ext.Component} to align to. If passing a component, it must be a
|
|
189
|
+
* component instance. If a string id is passed, it will be used as an element id.
|
|
190
|
+
* @param {String} [position="tl-bl?"] The position to align to
|
|
191
|
+
* (see {@link Ext.Element#alignTo} for more details).
|
|
192
|
+
* @param {Number[]} [offsets] Offset the positioning by [x, y]
|
|
193
|
+
* @return {Ext.Component} this
|
|
194
|
+
*/
|
|
195
|
+
alignTo: function(element, position, offsets) {
|
|
196
|
+
|
|
197
|
+
// element may be a Component, so first attempt to use its el to align to.
|
|
198
|
+
// When aligning to an Element's X,Y position, we must use setPagePosition which disregards any floatParent
|
|
199
|
+
this.setPagePosition(this.el.getAlignToXY(element.el || element, position, offsets));
|
|
200
|
+
return this;
|
|
201
|
+
},
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Brings this floating Component to the front of any other visible, floating Components managed by the same
|
|
205
|
+
* {@link Ext.ZIndexManager ZIndexManager}
|
|
206
|
+
*
|
|
207
|
+
* If this Component is modal, inserts the modal mask just below this Component in the z-index stack.
|
|
208
|
+
*
|
|
209
|
+
* @param {Boolean} [preventFocus=false] Specify `true` to prevent the Component from being focused.
|
|
210
|
+
* @return {Ext.Component} this
|
|
211
|
+
*/
|
|
212
|
+
toFront: function(preventFocus) {
|
|
213
|
+
var me = this;
|
|
214
|
+
|
|
215
|
+
// Find the floating Component which provides the base for this Component's zIndexing.
|
|
216
|
+
// That must move to front to then be able to rebase its zIndex stack and move this to the front
|
|
217
|
+
if (me.zIndexParent && me.bringParentToFront !== false) {
|
|
218
|
+
me.zIndexParent.toFront(true);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
if (!Ext.isDefined(preventFocus)) {
|
|
222
|
+
preventFocus = !me.focusOnToFront;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
if (preventFocus) {
|
|
226
|
+
me.preventFocusOnActivate = true;
|
|
227
|
+
}
|
|
228
|
+
if (me.zIndexManager.bringToFront(me)) {
|
|
229
|
+
if (!preventFocus) {
|
|
230
|
+
// Kick off a delayed focus request.
|
|
231
|
+
// If another floating Component is toFronted before the delay expires
|
|
232
|
+
// this will not receive focus.
|
|
233
|
+
me.focus(false, true);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
delete me.preventFocusOnActivate;
|
|
237
|
+
return me;
|
|
238
|
+
},
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* This method is called internally by {@link Ext.ZIndexManager} to signal that a floating Component has either been
|
|
242
|
+
* moved to the top of its zIndex stack, or pushed from the top of its zIndex stack.
|
|
243
|
+
*
|
|
244
|
+
* If a _Window_ is superceded by another Window, deactivating it hides its shadow.
|
|
245
|
+
*
|
|
246
|
+
* This method also fires the {@link Ext.Component#activate activate} or
|
|
247
|
+
* {@link Ext.Component#deactivate deactivate} event depending on which action occurred.
|
|
248
|
+
*
|
|
249
|
+
* @param {Boolean} [active=false] True to activate the Component, false to deactivate it.
|
|
250
|
+
* @param {Ext.Component} [newActive] The newly active Component which is taking over topmost zIndex position.
|
|
251
|
+
*/
|
|
252
|
+
setActive: function(active, newActive) {
|
|
253
|
+
var me = this;
|
|
254
|
+
|
|
255
|
+
if (active) {
|
|
256
|
+
if (me.el.shadow && !me.maximized) {
|
|
257
|
+
me.el.enableShadow(true);
|
|
258
|
+
}
|
|
259
|
+
if (me.modal && !me.preventFocusOnActivate) {
|
|
260
|
+
me.focus(false, true);
|
|
261
|
+
}
|
|
262
|
+
me.fireEvent('activate', me);
|
|
263
|
+
} else {
|
|
264
|
+
// Only the *Windows* in a zIndex stack share a shadow. All other types of floaters
|
|
265
|
+
// can keep their shadows all the time
|
|
266
|
+
if (me.isWindow && (newActive && newActive.isWindow)) {
|
|
267
|
+
me.el.disableShadow();
|
|
268
|
+
}
|
|
269
|
+
me.fireEvent('deactivate', me);
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Sends this Component to the back of (lower z-index than) any other visible windows
|
|
275
|
+
* @return {Ext.Component} this
|
|
276
|
+
*/
|
|
277
|
+
toBack: function() {
|
|
278
|
+
this.zIndexManager.sendToBack(this);
|
|
279
|
+
return this;
|
|
280
|
+
},
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Center this Component in its container.
|
|
284
|
+
* @return {Ext.Component} this
|
|
285
|
+
*/
|
|
286
|
+
center: function() {
|
|
287
|
+
var me = this,
|
|
288
|
+
xy;
|
|
289
|
+
|
|
290
|
+
if (me.isVisible()) {
|
|
291
|
+
xy = me.el.getAlignToXY(me.container, 'c-c');
|
|
292
|
+
me.setPagePosition(xy);
|
|
293
|
+
} else {
|
|
294
|
+
me.needsCenter = true;
|
|
295
|
+
}
|
|
296
|
+
return me;
|
|
297
|
+
},
|
|
298
|
+
|
|
299
|
+
onFloatShow: function(){
|
|
300
|
+
if (this.needsCenter) {
|
|
301
|
+
this.center();
|
|
302
|
+
}
|
|
303
|
+
delete this.needsCenter;
|
|
304
|
+
},
|
|
305
|
+
|
|
306
|
+
// private
|
|
307
|
+
syncShadow : function(){
|
|
308
|
+
if (this.floating) {
|
|
309
|
+
this.el.sync(true);
|
|
310
|
+
}
|
|
311
|
+
},
|
|
312
|
+
|
|
313
|
+
// private
|
|
314
|
+
fitContainer: function() {
|
|
315
|
+
var parent = this.floatParent,
|
|
316
|
+
container = parent ? parent.getTargetEl() : this.container,
|
|
317
|
+
size = container.getViewSize(false);
|
|
318
|
+
|
|
319
|
+
this.setSize(size);
|
|
320
|
+
}
|
|
321
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @class Ext.util.Grouper
|
|
3
|
+
|
|
4
|
+
Represents a single grouper that can be applied to a Store. The grouper works
|
|
5
|
+
in the same fashion as the {@link Ext.util.Sorter}.
|
|
6
|
+
|
|
7
|
+
* @markdown
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
Ext.define('Ext.util.Grouper', {
|
|
11
|
+
|
|
12
|
+
/* Begin Definitions */
|
|
13
|
+
|
|
14
|
+
extend: 'Ext.util.Sorter',
|
|
15
|
+
|
|
16
|
+
/* End Definitions */
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Returns the value for grouping to be used.
|
|
20
|
+
* @param {Ext.data.Model} instance The Model instance
|
|
21
|
+
* @return {String} The group string for this model
|
|
22
|
+
*/
|
|
23
|
+
getGroupString: function(instance) {
|
|
24
|
+
return instance.get(this.property);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @class Ext.util.HashMap
|
|
3
|
+
* <p>
|
|
4
|
+
* Represents a collection of a set of key and value pairs. Each key in the HashMap
|
|
5
|
+
* must be unique, the same key cannot exist twice. Access to items is provided via
|
|
6
|
+
* the key only. Sample usage:
|
|
7
|
+
* <pre><code>
|
|
8
|
+
var map = new Ext.util.HashMap();
|
|
9
|
+
map.add('key1', 1);
|
|
10
|
+
map.add('key2', 2);
|
|
11
|
+
map.add('key3', 3);
|
|
12
|
+
|
|
13
|
+
map.each(function(key, value, length){
|
|
14
|
+
console.log(key, value, length);
|
|
15
|
+
});
|
|
16
|
+
* </code></pre>
|
|
17
|
+
* </p>
|
|
18
|
+
*
|
|
19
|
+
* <p>The HashMap is an unordered class,
|
|
20
|
+
* there is no guarantee when iterating over the items that they will be in any particular
|
|
21
|
+
* order. If this is required, then use a {@link Ext.util.MixedCollection}.
|
|
22
|
+
* </p>
|
|
23
|
+
*/
|
|
24
|
+
Ext.define('Ext.util.HashMap', {
|
|
25
|
+
mixins: {
|
|
26
|
+
observable: 'Ext.util.Observable'
|
|
27
|
+
},
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @cfg {Function} keyFn A function that is used to retrieve a default key for a passed object.
|
|
31
|
+
* A default is provided that returns the <b>id</b> property on the object. This function is only used
|
|
32
|
+
* if the add method is called with a single argument.
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Creates new HashMap.
|
|
37
|
+
* @param {Object} config (optional) Config object.
|
|
38
|
+
*/
|
|
39
|
+
constructor: function(config) {
|
|
40
|
+
config = config || {};
|
|
41
|
+
|
|
42
|
+
var me = this,
|
|
43
|
+
keyFn = config.keyFn;
|
|
44
|
+
|
|
45
|
+
me.addEvents(
|
|
46
|
+
/**
|
|
47
|
+
* @event add
|
|
48
|
+
* Fires when a new item is added to the hash
|
|
49
|
+
* @param {Ext.util.HashMap} this.
|
|
50
|
+
* @param {String} key The key of the added item.
|
|
51
|
+
* @param {Object} value The value of the added item.
|
|
52
|
+
*/
|
|
53
|
+
'add',
|
|
54
|
+
/**
|
|
55
|
+
* @event clear
|
|
56
|
+
* Fires when the hash is cleared.
|
|
57
|
+
* @param {Ext.util.HashMap} this.
|
|
58
|
+
*/
|
|
59
|
+
'clear',
|
|
60
|
+
/**
|
|
61
|
+
* @event remove
|
|
62
|
+
* Fires when an item is removed from the hash.
|
|
63
|
+
* @param {Ext.util.HashMap} this.
|
|
64
|
+
* @param {String} key The key of the removed item.
|
|
65
|
+
* @param {Object} value The value of the removed item.
|
|
66
|
+
*/
|
|
67
|
+
'remove',
|
|
68
|
+
/**
|
|
69
|
+
* @event replace
|
|
70
|
+
* Fires when an item is replaced in the hash.
|
|
71
|
+
* @param {Ext.util.HashMap} this.
|
|
72
|
+
* @param {String} key The key of the replaced item.
|
|
73
|
+
* @param {Object} value The new value for the item.
|
|
74
|
+
* @param {Object} old The old value for the item.
|
|
75
|
+
*/
|
|
76
|
+
'replace'
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
me.mixins.observable.constructor.call(me, config);
|
|
80
|
+
me.clear(true);
|
|
81
|
+
|
|
82
|
+
if (keyFn) {
|
|
83
|
+
me.getKey = keyFn;
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Gets the number of items in the hash.
|
|
89
|
+
* @return {Number} The number of items in the hash.
|
|
90
|
+
*/
|
|
91
|
+
getCount: function() {
|
|
92
|
+
return this.length;
|
|
93
|
+
},
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Implementation for being able to extract the key from an object if only
|
|
97
|
+
* a single argument is passed.
|
|
98
|
+
* @private
|
|
99
|
+
* @param {String} key The key
|
|
100
|
+
* @param {Object} value The value
|
|
101
|
+
* @return {Array} [key, value]
|
|
102
|
+
*/
|
|
103
|
+
getData: function(key, value) {
|
|
104
|
+
// if we have no value, it means we need to get the key from the object
|
|
105
|
+
if (value === undefined) {
|
|
106
|
+
value = key;
|
|
107
|
+
key = this.getKey(value);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
return [key, value];
|
|
111
|
+
},
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Extracts the key from an object. This is a default implementation, it may be overridden
|
|
115
|
+
* @param {Object} o The object to get the key from
|
|
116
|
+
* @return {String} The key to use.
|
|
117
|
+
*/
|
|
118
|
+
getKey: function(o) {
|
|
119
|
+
return o.id;
|
|
120
|
+
},
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Adds an item to the collection. Fires the {@link #event-add} event when complete.
|
|
124
|
+
* @param {String} key <p>The key to associate with the item, or the new item.</p>
|
|
125
|
+
* <p>If a {@link #getKey} implementation was specified for this HashMap,
|
|
126
|
+
* or if the key of the stored items is in a property called <tt><b>id</b></tt>,
|
|
127
|
+
* the HashMap will be able to <i>derive</i> the key for the new item.
|
|
128
|
+
* In this case just pass the new item in this parameter.</p>
|
|
129
|
+
* @param {Object} o The item to add.
|
|
130
|
+
* @return {Object} The item added.
|
|
131
|
+
*/
|
|
132
|
+
add: function(key, value) {
|
|
133
|
+
var me = this;
|
|
134
|
+
|
|
135
|
+
if (value === undefined) {
|
|
136
|
+
value = key;
|
|
137
|
+
key = me.getKey(value);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
if (me.containsKey(key)) {
|
|
141
|
+
return me.replace(key, value);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
me.map[key] = value;
|
|
145
|
+
++me.length;
|
|
146
|
+
if (me.hasListeners.add) {
|
|
147
|
+
me.fireEvent('add', me, key, value);
|
|
148
|
+
}
|
|
149
|
+
return value;
|
|
150
|
+
},
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Replaces an item in the hash. If the key doesn't exist, the
|
|
154
|
+
* {@link #method-add} method will be used.
|
|
155
|
+
* @param {String} key The key of the item.
|
|
156
|
+
* @param {Object} value The new value for the item.
|
|
157
|
+
* @return {Object} The new value of the item.
|
|
158
|
+
*/
|
|
159
|
+
replace: function(key, value) {
|
|
160
|
+
var me = this,
|
|
161
|
+
map = me.map,
|
|
162
|
+
old;
|
|
163
|
+
|
|
164
|
+
if (value === undefined) {
|
|
165
|
+
value = key;
|
|
166
|
+
key = me.getKey(value);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (!me.containsKey(key)) {
|
|
170
|
+
me.add(key, value);
|
|
171
|
+
}
|
|
172
|
+
old = map[key];
|
|
173
|
+
map[key] = value;
|
|
174
|
+
if (me.hasListeners.replace) {
|
|
175
|
+
me.fireEvent('replace', me, key, value, old);
|
|
176
|
+
}
|
|
177
|
+
return value;
|
|
178
|
+
},
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Remove an item from the hash.
|
|
182
|
+
* @param {Object} o The value of the item to remove.
|
|
183
|
+
* @return {Boolean} True if the item was successfully removed.
|
|
184
|
+
*/
|
|
185
|
+
remove: function(o) {
|
|
186
|
+
var key = this.findKey(o);
|
|
187
|
+
if (key !== undefined) {
|
|
188
|
+
return this.removeAtKey(key);
|
|
189
|
+
}
|
|
190
|
+
return false;
|
|
191
|
+
},
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Remove an item from the hash.
|
|
195
|
+
* @param {String} key The key to remove.
|
|
196
|
+
* @return {Boolean} True if the item was successfully removed.
|
|
197
|
+
*/
|
|
198
|
+
removeAtKey: function(key) {
|
|
199
|
+
var me = this,
|
|
200
|
+
value;
|
|
201
|
+
|
|
202
|
+
if (me.containsKey(key)) {
|
|
203
|
+
value = me.map[key];
|
|
204
|
+
delete me.map[key];
|
|
205
|
+
--me.length;
|
|
206
|
+
if (me.hasListeners.remove) {
|
|
207
|
+
me.fireEvent('remove', me, key, value);
|
|
208
|
+
}
|
|
209
|
+
return true;
|
|
210
|
+
}
|
|
211
|
+
return false;
|
|
212
|
+
},
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Retrieves an item with a particular key.
|
|
216
|
+
* @param {String} key The key to lookup.
|
|
217
|
+
* @return {Object} The value at that key. If it doesn't exist, <tt>undefined</tt> is returned.
|
|
218
|
+
*/
|
|
219
|
+
get: function(key) {
|
|
220
|
+
return this.map[key];
|
|
221
|
+
},
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Removes all items from the hash.
|
|
225
|
+
* @return {Ext.util.HashMap} this
|
|
226
|
+
*/
|
|
227
|
+
clear: function(/* private */ initial) {
|
|
228
|
+
var me = this;
|
|
229
|
+
me.map = {};
|
|
230
|
+
me.length = 0;
|
|
231
|
+
if (initial !== true && me.hasListeners.clear) {
|
|
232
|
+
me.fireEvent('clear', me);
|
|
233
|
+
}
|
|
234
|
+
return me;
|
|
235
|
+
},
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Checks whether a key exists in the hash.
|
|
239
|
+
* @param {String} key The key to check for.
|
|
240
|
+
* @return {Boolean} True if they key exists in the hash.
|
|
241
|
+
*/
|
|
242
|
+
containsKey: function(key) {
|
|
243
|
+
return this.map[key] !== undefined;
|
|
244
|
+
},
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Checks whether a value exists in the hash.
|
|
248
|
+
* @param {Object} value The value to check for.
|
|
249
|
+
* @return {Boolean} True if the value exists in the dictionary.
|
|
250
|
+
*/
|
|
251
|
+
contains: function(value) {
|
|
252
|
+
return this.containsKey(this.findKey(value));
|
|
253
|
+
},
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Return all of the keys in the hash.
|
|
257
|
+
* @return {Array} An array of keys.
|
|
258
|
+
*/
|
|
259
|
+
getKeys: function() {
|
|
260
|
+
return this.getArray(true);
|
|
261
|
+
},
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* Return all of the values in the hash.
|
|
265
|
+
* @return {Array} An array of values.
|
|
266
|
+
*/
|
|
267
|
+
getValues: function() {
|
|
268
|
+
return this.getArray(false);
|
|
269
|
+
},
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* Gets either the keys/values in an array from the hash.
|
|
273
|
+
* @private
|
|
274
|
+
* @param {Boolean} isKey True to extract the keys, otherwise, the value
|
|
275
|
+
* @return {Array} An array of either keys/values from the hash.
|
|
276
|
+
*/
|
|
277
|
+
getArray: function(isKey) {
|
|
278
|
+
var arr = [],
|
|
279
|
+
key,
|
|
280
|
+
map = this.map;
|
|
281
|
+
for (key in map) {
|
|
282
|
+
if (map.hasOwnProperty(key)) {
|
|
283
|
+
arr.push(isKey ? key: map[key]);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
return arr;
|
|
287
|
+
},
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Executes the specified function once for each item in the hash.
|
|
291
|
+
* Returning false from the function will cease iteration.
|
|
292
|
+
*
|
|
293
|
+
* The paramaters passed to the function are:
|
|
294
|
+
* <div class="mdetail-params"><ul>
|
|
295
|
+
* <li><b>key</b> : String<p class="sub-desc">The key of the item</p></li>
|
|
296
|
+
* <li><b>value</b> : Number<p class="sub-desc">The value of the item</p></li>
|
|
297
|
+
* <li><b>length</b> : Number<p class="sub-desc">The total number of items in the hash</p></li>
|
|
298
|
+
* </ul></div>
|
|
299
|
+
* @param {Function} fn The function to execute.
|
|
300
|
+
* @param {Object} scope The scope to execute in. Defaults to <tt>this</tt>.
|
|
301
|
+
* @return {Ext.util.HashMap} this
|
|
302
|
+
*/
|
|
303
|
+
each: function(fn, scope) {
|
|
304
|
+
// copy items so they may be removed during iteration.
|
|
305
|
+
var items = Ext.apply({}, this.map),
|
|
306
|
+
key,
|
|
307
|
+
length = this.length;
|
|
308
|
+
|
|
309
|
+
scope = scope || this;
|
|
310
|
+
for (key in items) {
|
|
311
|
+
if (items.hasOwnProperty(key)) {
|
|
312
|
+
if (fn.call(scope, key, items[key], length) === false) {
|
|
313
|
+
break;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
return this;
|
|
318
|
+
},
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* Performs a shallow copy on this hash.
|
|
322
|
+
* @return {Ext.util.HashMap} The new hash object.
|
|
323
|
+
*/
|
|
324
|
+
clone: function() {
|
|
325
|
+
var hash = new this.self(),
|
|
326
|
+
map = this.map,
|
|
327
|
+
key;
|
|
328
|
+
|
|
329
|
+
hash.suspendEvents();
|
|
330
|
+
for (key in map) {
|
|
331
|
+
if (map.hasOwnProperty(key)) {
|
|
332
|
+
hash.add(key, map[key]);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
hash.resumeEvents();
|
|
336
|
+
return hash;
|
|
337
|
+
},
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* @private
|
|
341
|
+
* Find the key for a value.
|
|
342
|
+
* @param {Object} value The value to find.
|
|
343
|
+
* @return {Object} The value of the item. Returns <tt>undefined</tt> if not found.
|
|
344
|
+
*/
|
|
345
|
+
findKey: function(value) {
|
|
346
|
+
var key,
|
|
347
|
+
map = this.map;
|
|
348
|
+
|
|
349
|
+
for (key in map) {
|
|
350
|
+
if (map.hasOwnProperty(key) && map[key] === value) {
|
|
351
|
+
return key;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
return undefined;
|
|
355
|
+
}
|
|
356
|
+
});
|