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,308 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This is a layout that manages multiple Panels in an expandable accordion style such that only
|
|
3
|
+
* **one Panel can be expanded at any given time**. Each Panel has built-in support for expanding and collapsing.
|
|
4
|
+
*
|
|
5
|
+
* Note: Only Ext Panels and all subclasses of Ext.panel.Panel may be used in an accordion layout Container.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* Ext.create('Ext.panel.Panel', {
|
|
9
|
+
* title: 'Accordion Layout',
|
|
10
|
+
* width: 300,
|
|
11
|
+
* height: 300,
|
|
12
|
+
* defaults: {
|
|
13
|
+
* // applied to each contained panel
|
|
14
|
+
* bodyStyle: 'padding:15px'
|
|
15
|
+
* },
|
|
16
|
+
* layout: {
|
|
17
|
+
* // layout-specific configs go here
|
|
18
|
+
* type: 'accordion',
|
|
19
|
+
* titleCollapse: false,
|
|
20
|
+
* animate: true,
|
|
21
|
+
* activeOnTop: true
|
|
22
|
+
* },
|
|
23
|
+
* items: [{
|
|
24
|
+
* title: 'Panel 1',
|
|
25
|
+
* html: 'Panel content!'
|
|
26
|
+
* },{
|
|
27
|
+
* title: 'Panel 2',
|
|
28
|
+
* html: 'Panel content!'
|
|
29
|
+
* },{
|
|
30
|
+
* title: 'Panel 3',
|
|
31
|
+
* html: 'Panel content!'
|
|
32
|
+
* }],
|
|
33
|
+
* renderTo: Ext.getBody()
|
|
34
|
+
* });
|
|
35
|
+
*/
|
|
36
|
+
Ext.define('Ext.layout.container.Accordion', {
|
|
37
|
+
extend: 'Ext.layout.container.VBox',
|
|
38
|
+
alias: ['layout.accordion'],
|
|
39
|
+
alternateClassName: 'Ext.layout.AccordionLayout',
|
|
40
|
+
|
|
41
|
+
itemCls: [Ext.baseCSSPrefix + 'box-item', Ext.baseCSSPrefix + 'accordion-item'],
|
|
42
|
+
|
|
43
|
+
align: 'stretch',
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* @cfg {Boolean} fill
|
|
47
|
+
* True to adjust the active item's height to fill the available space in the container, false to use the
|
|
48
|
+
* item's current height, or auto height if not explicitly set.
|
|
49
|
+
*/
|
|
50
|
+
fill : true,
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* @cfg {Boolean} autoWidth
|
|
54
|
+
* Child Panels have their width actively managed to fit within the accordion's width.
|
|
55
|
+
* @removed This config is ignored in ExtJS 4
|
|
56
|
+
*/
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* @cfg {Boolean} titleCollapse
|
|
60
|
+
* True to allow expand/collapse of each contained panel by clicking anywhere on the title bar, false to allow
|
|
61
|
+
* expand/collapse only when the toggle tool button is clicked. When set to false,
|
|
62
|
+
* {@link #hideCollapseTool} should be false also.
|
|
63
|
+
*/
|
|
64
|
+
titleCollapse : true,
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @cfg {Boolean} hideCollapseTool
|
|
68
|
+
* True to hide the contained Panels' collapse/expand toggle buttons, false to display them.
|
|
69
|
+
* When set to true, {@link #titleCollapse} is automatically set to true.
|
|
70
|
+
*/
|
|
71
|
+
hideCollapseTool : false,
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* @cfg {Boolean} collapseFirst
|
|
75
|
+
* True to make sure the collapse/expand toggle button always renders first (to the left of) any other tools
|
|
76
|
+
* in the contained Panels' title bars, false to render it last.
|
|
77
|
+
*/
|
|
78
|
+
collapseFirst : false,
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* @cfg {Boolean} animate
|
|
82
|
+
* True to slide the contained panels open and closed during expand/collapse using animation, false to open and
|
|
83
|
+
* close directly with no animation. Note: The layout performs animated collapsing
|
|
84
|
+
* and expanding, *not* the child Panels.
|
|
85
|
+
*/
|
|
86
|
+
animate : true,
|
|
87
|
+
/**
|
|
88
|
+
* @cfg {Boolean} activeOnTop
|
|
89
|
+
* Only valid when {@link #multi} is `false` and {@link #animate} is `false`.
|
|
90
|
+
*
|
|
91
|
+
* True to swap the position of each panel as it is expanded so that it becomes the first item in the container,
|
|
92
|
+
* false to keep the panels in the rendered order.
|
|
93
|
+
*/
|
|
94
|
+
activeOnTop : false,
|
|
95
|
+
/**
|
|
96
|
+
* @cfg {Boolean} multi
|
|
97
|
+
* Set to true to enable multiple accordion items to be open at once.
|
|
98
|
+
*/
|
|
99
|
+
multi: false,
|
|
100
|
+
|
|
101
|
+
defaultAnimatePolicy: {
|
|
102
|
+
y: true,
|
|
103
|
+
height: true
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
constructor: function() {
|
|
107
|
+
var me = this;
|
|
108
|
+
|
|
109
|
+
me.callParent(arguments);
|
|
110
|
+
|
|
111
|
+
if (me.animate) {
|
|
112
|
+
me.animatePolicy = Ext.apply({}, me.defaultAnimatePolicy);
|
|
113
|
+
} else {
|
|
114
|
+
me.animatePolicy = null;
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
|
|
118
|
+
beforeRenderItems: function (items) {
|
|
119
|
+
var me = this,
|
|
120
|
+
ln = items.length,
|
|
121
|
+
i = 0,
|
|
122
|
+
comp;
|
|
123
|
+
|
|
124
|
+
for (; i < ln; i++) {
|
|
125
|
+
comp = items[i];
|
|
126
|
+
if (!comp.rendered) {
|
|
127
|
+
// Set up initial properties for Panels in an accordion.
|
|
128
|
+
if (me.collapseFirst) {
|
|
129
|
+
comp.collapseFirst = me.collapseFirst;
|
|
130
|
+
}
|
|
131
|
+
if (me.hideCollapseTool) {
|
|
132
|
+
comp.hideCollapseTool = me.hideCollapseTool;
|
|
133
|
+
comp.titleCollapse = true;
|
|
134
|
+
}
|
|
135
|
+
else if (me.titleCollapse) {
|
|
136
|
+
comp.titleCollapse = me.titleCollapse;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
delete comp.hideHeader;
|
|
140
|
+
delete comp.width;
|
|
141
|
+
comp.collapsible = true;
|
|
142
|
+
comp.title = comp.title || ' ';
|
|
143
|
+
comp.addBodyCls(Ext.baseCSSPrefix + 'accordion-body');
|
|
144
|
+
|
|
145
|
+
// If only one child Panel is allowed to be expanded
|
|
146
|
+
// then collapse all except the first one found with collapsed:false
|
|
147
|
+
if (!me.multi) {
|
|
148
|
+
// If there is an expanded item, all others must be rendered collapsed.
|
|
149
|
+
if (me.expandedItem !== undefined) {
|
|
150
|
+
comp.collapsed = true;
|
|
151
|
+
}
|
|
152
|
+
// Otherwise expand the first item with collapsed explicitly configured as false
|
|
153
|
+
else if (comp.hasOwnProperty('collapsed') && comp.collapsed === false) {
|
|
154
|
+
me.expandedItem = i;
|
|
155
|
+
} else {
|
|
156
|
+
comp.collapsed = true;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// If only one child Panel may be expanded, then intercept expand/show requests.
|
|
160
|
+
me.owner.mon(comp, {
|
|
161
|
+
show: me.onComponentShow,
|
|
162
|
+
beforeexpand: me.onComponentExpand,
|
|
163
|
+
scope: me
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// If we must fill available space, a collapse must be listened for and a sibling must
|
|
168
|
+
// be expanded.
|
|
169
|
+
if (me.fill) {
|
|
170
|
+
me.owner.mon(comp, {
|
|
171
|
+
beforecollapse: me.onComponentCollapse,
|
|
172
|
+
scope: me
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// If no collapsed:false Panels found, make the first one expanded.
|
|
179
|
+
if (ln && me.expandedItem === undefined) {
|
|
180
|
+
me.expandedItem = 0;
|
|
181
|
+
items[0].collapsed = false;
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
|
|
185
|
+
getItemsRenderTree: function(items) {
|
|
186
|
+
this.beforeRenderItems(items);
|
|
187
|
+
|
|
188
|
+
return this.callParent(arguments);
|
|
189
|
+
},
|
|
190
|
+
|
|
191
|
+
renderItems : function(items, target) {
|
|
192
|
+
this.beforeRenderItems(items);
|
|
193
|
+
|
|
194
|
+
this.callParent(arguments);
|
|
195
|
+
},
|
|
196
|
+
|
|
197
|
+
configureItem: function(item) {
|
|
198
|
+
this.callParent(arguments);
|
|
199
|
+
|
|
200
|
+
// We handle animations for the expand/collapse of items.
|
|
201
|
+
// Items do not have individual borders
|
|
202
|
+
item.animCollapse = item.border = false;
|
|
203
|
+
|
|
204
|
+
// If filling available space, all Panels flex.
|
|
205
|
+
if (this.fill) {
|
|
206
|
+
item.flex = 1;
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
|
|
210
|
+
onChildPanelRender: function(panel) {
|
|
211
|
+
panel.header.addCls(Ext.baseCSSPrefix + 'accordion-hd');
|
|
212
|
+
},
|
|
213
|
+
|
|
214
|
+
beginLayout: function (ownerContext) {
|
|
215
|
+
this.callParent(arguments);
|
|
216
|
+
this.updatePanelClasses(ownerContext);
|
|
217
|
+
},
|
|
218
|
+
|
|
219
|
+
updatePanelClasses: function(ownerContext) {
|
|
220
|
+
var children = ownerContext.visibleItems,
|
|
221
|
+
ln = children.length,
|
|
222
|
+
siblingCollapsed = true,
|
|
223
|
+
i, child, header;
|
|
224
|
+
|
|
225
|
+
for (i = 0; i < ln; i++) {
|
|
226
|
+
child = children[i];
|
|
227
|
+
header = child.header;
|
|
228
|
+
header.addCls(Ext.baseCSSPrefix + 'accordion-hd');
|
|
229
|
+
|
|
230
|
+
if (siblingCollapsed) {
|
|
231
|
+
header.removeCls(Ext.baseCSSPrefix + 'accordion-hd-sibling-expanded');
|
|
232
|
+
} else {
|
|
233
|
+
header.addCls(Ext.baseCSSPrefix + 'accordion-hd-sibling-expanded');
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
if (i + 1 == ln && child.collapsed) {
|
|
237
|
+
header.addCls(Ext.baseCSSPrefix + 'accordion-hd-last-collapsed');
|
|
238
|
+
} else {
|
|
239
|
+
header.removeCls(Ext.baseCSSPrefix + 'accordion-hd-last-collapsed');
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
siblingCollapsed = child.collapsed;
|
|
243
|
+
}
|
|
244
|
+
},
|
|
245
|
+
|
|
246
|
+
// When a Component expands, adjust the heights of the other Components to be just enough to accommodate
|
|
247
|
+
// their headers.
|
|
248
|
+
// The expanded Component receives the only flex value, and so gets all remaining space.
|
|
249
|
+
onComponentExpand: function(toExpand) {
|
|
250
|
+
var me = this,
|
|
251
|
+
owner = me.owner,
|
|
252
|
+
expanded,
|
|
253
|
+
expandedCount, i,
|
|
254
|
+
previousValue;
|
|
255
|
+
|
|
256
|
+
if (!me.processing) {
|
|
257
|
+
me.processing = true;
|
|
258
|
+
previousValue = owner.deferLayouts;
|
|
259
|
+
owner.deferLayouts = true;
|
|
260
|
+
expanded = me.multi ? [] : owner.query('>panel:not([collapsed])');
|
|
261
|
+
expandedCount = expanded.length;
|
|
262
|
+
|
|
263
|
+
// Collapse all other expanded child items (Won't loop if multi is true)
|
|
264
|
+
for (i = 0; i < expandedCount; i++) {
|
|
265
|
+
expanded[i].collapse();
|
|
266
|
+
}
|
|
267
|
+
owner.deferLayouts = previousValue;
|
|
268
|
+
me.processing = false;
|
|
269
|
+
}
|
|
270
|
+
},
|
|
271
|
+
|
|
272
|
+
onComponentCollapse: function(comp) {
|
|
273
|
+
var me = this,
|
|
274
|
+
owner = me.owner,
|
|
275
|
+
toExpand,
|
|
276
|
+
expanded,
|
|
277
|
+
previousValue;
|
|
278
|
+
|
|
279
|
+
if (!me.processing) {
|
|
280
|
+
me.processing = true;
|
|
281
|
+
previousValue = owner.deferLayouts;
|
|
282
|
+
owner.deferLayouts = true;
|
|
283
|
+
toExpand = comp.next() || comp.prev();
|
|
284
|
+
|
|
285
|
+
// If we are allowing multi, and the "toCollapse" component is NOT the only expanded Component,
|
|
286
|
+
// then ask the box layout to collapse it to its header.
|
|
287
|
+
if (me.multi) {
|
|
288
|
+
expanded = me.owner.query('>panel:not([collapsed])');
|
|
289
|
+
|
|
290
|
+
// If the collapsing Panel is the only expanded one, expand the following Component.
|
|
291
|
+
// All this is handling fill: true, so there must be at least one expanded,
|
|
292
|
+
if (expanded.length === 1) {
|
|
293
|
+
toExpand.expand();
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
} else if (toExpand) {
|
|
297
|
+
toExpand.expand();
|
|
298
|
+
}
|
|
299
|
+
owner.deferLayouts = previousValue;
|
|
300
|
+
me.processing = false;
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
|
|
304
|
+
onComponentShow: function(comp) {
|
|
305
|
+
// Showing a Component means that you want to see it, so expand it.
|
|
306
|
+
this.onComponentExpand(comp);
|
|
307
|
+
}
|
|
308
|
+
});
|
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This is a layout that enables anchoring of contained elements relative to the container's dimensions.
|
|
3
|
+
* If the container is resized, all anchored items are automatically rerendered according to their
|
|
4
|
+
* `{@link #anchor}` rules.
|
|
5
|
+
*
|
|
6
|
+
* This class is intended to be extended or created via the {@link Ext.container.AbstractContainer#layout layout}: 'anchor'
|
|
7
|
+
* config, and should generally not need to be created directly via the new keyword.
|
|
8
|
+
*
|
|
9
|
+
* AnchorLayout does not have any direct config options (other than inherited ones). By default,
|
|
10
|
+
* AnchorLayout will calculate anchor measurements based on the size of the container itself. However, the
|
|
11
|
+
* container using the AnchorLayout can supply an anchoring-specific config property of `anchorSize`.
|
|
12
|
+
*
|
|
13
|
+
* If anchorSize is specifed, the layout will use it as a virtual container for the purposes of calculating
|
|
14
|
+
* anchor measurements based on it instead, allowing the container to be sized independently of the anchoring
|
|
15
|
+
* logic if necessary.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* Ext.create('Ext.Panel', {
|
|
19
|
+
* width: 500,
|
|
20
|
+
* height: 400,
|
|
21
|
+
* title: "AnchorLayout Panel",
|
|
22
|
+
* layout: 'anchor',
|
|
23
|
+
* renderTo: Ext.getBody(),
|
|
24
|
+
* items: [
|
|
25
|
+
* {
|
|
26
|
+
* xtype: 'panel',
|
|
27
|
+
* title: '75% Width and 20% Height',
|
|
28
|
+
* anchor: '75% 20%'
|
|
29
|
+
* },
|
|
30
|
+
* {
|
|
31
|
+
* xtype: 'panel',
|
|
32
|
+
* title: 'Offset -300 Width & -200 Height',
|
|
33
|
+
* anchor: '-300 -200'
|
|
34
|
+
* },
|
|
35
|
+
* {
|
|
36
|
+
* xtype: 'panel',
|
|
37
|
+
* title: 'Mixed Offset and Percent',
|
|
38
|
+
* anchor: '-250 20%'
|
|
39
|
+
* }
|
|
40
|
+
* ]
|
|
41
|
+
* });
|
|
42
|
+
*/
|
|
43
|
+
Ext.define('Ext.layout.container.Anchor', {
|
|
44
|
+
|
|
45
|
+
/* Begin Definitions */
|
|
46
|
+
|
|
47
|
+
alias: 'layout.anchor',
|
|
48
|
+
extend: 'Ext.layout.container.Container',
|
|
49
|
+
alternateClassName: 'Ext.layout.AnchorLayout',
|
|
50
|
+
|
|
51
|
+
/* End Definitions */
|
|
52
|
+
|
|
53
|
+
type: 'anchor',
|
|
54
|
+
|
|
55
|
+
manageOverflow: 2,
|
|
56
|
+
|
|
57
|
+
renderTpl: [
|
|
58
|
+
'{%this.renderBody(out,values);this.renderPadder(out,values)%}'
|
|
59
|
+
],
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @cfg {String} anchor
|
|
63
|
+
*
|
|
64
|
+
* This configuation option is to be applied to **child `items`** of a container managed by
|
|
65
|
+
* this layout (ie. configured with `layout:'anchor'`).
|
|
66
|
+
*
|
|
67
|
+
* This value is what tells the layout how an item should be anchored to the container. `items`
|
|
68
|
+
* added to an AnchorLayout accept an anchoring-specific config property of **anchor** which is a string
|
|
69
|
+
* containing two values: the horizontal anchor value and the vertical anchor value (for example, '100% 50%').
|
|
70
|
+
* The following types of anchor values are supported:
|
|
71
|
+
*
|
|
72
|
+
* - **Percentage** : Any value between 1 and 100, expressed as a percentage.
|
|
73
|
+
*
|
|
74
|
+
* The first anchor is the percentage width that the item should take up within the container, and the
|
|
75
|
+
* second is the percentage height. For example:
|
|
76
|
+
*
|
|
77
|
+
* // two values specified
|
|
78
|
+
* anchor: '100% 50%' // render item complete width of the container and
|
|
79
|
+
* // 1/2 height of the container
|
|
80
|
+
* // one value specified
|
|
81
|
+
* anchor: '100%' // the width value; the height will default to auto
|
|
82
|
+
*
|
|
83
|
+
* - **Offsets** : Any positive or negative integer value.
|
|
84
|
+
*
|
|
85
|
+
* This is a raw adjustment where the first anchor is the offset from the right edge of the container,
|
|
86
|
+
* and the second is the offset from the bottom edge. For example:
|
|
87
|
+
*
|
|
88
|
+
* // two values specified
|
|
89
|
+
* anchor: '-50 -100' // render item the complete width of the container
|
|
90
|
+
* // minus 50 pixels and
|
|
91
|
+
* // the complete height minus 100 pixels.
|
|
92
|
+
* // one value specified
|
|
93
|
+
* anchor: '-50' // anchor value is assumed to be the right offset value
|
|
94
|
+
* // bottom offset will default to 0
|
|
95
|
+
*
|
|
96
|
+
* - **Sides** : Valid values are `right` (or `r`) and `bottom` (or `b`).
|
|
97
|
+
*
|
|
98
|
+
* Either the container must have a fixed size or an anchorSize config value defined at render time in
|
|
99
|
+
* order for these to have any effect.
|
|
100
|
+
*
|
|
101
|
+
* - **Mixed** :
|
|
102
|
+
*
|
|
103
|
+
* Anchor values can also be mixed as needed. For example, to render the width offset from the container
|
|
104
|
+
* right edge by 50 pixels and 75% of the container's height use:
|
|
105
|
+
*
|
|
106
|
+
* anchor: '-50 75%'
|
|
107
|
+
*/
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* @cfg {String} defaultAnchor
|
|
111
|
+
* Default anchor for all child **container** items applied if no anchor or specific width is set on the child item.
|
|
112
|
+
*/
|
|
113
|
+
defaultAnchor: '100%',
|
|
114
|
+
|
|
115
|
+
parseAnchorRE: /^(r|right|b|bottom)$/i,
|
|
116
|
+
|
|
117
|
+
beginLayout: function (ownerContext) {
|
|
118
|
+
var me = this,
|
|
119
|
+
dimensions = 0,
|
|
120
|
+
anchorSpec, childContext, childItems, i, length, target;
|
|
121
|
+
|
|
122
|
+
me.callParent(arguments);
|
|
123
|
+
|
|
124
|
+
childItems = ownerContext.childItems; // populated by callParent
|
|
125
|
+
length = childItems.length;
|
|
126
|
+
|
|
127
|
+
for (i = 0; i < length; ++i) {
|
|
128
|
+
childContext = childItems[i];
|
|
129
|
+
anchorSpec = childContext.target.anchorSpec;
|
|
130
|
+
|
|
131
|
+
if (anchorSpec) {
|
|
132
|
+
if (childContext.widthModel.calculated && anchorSpec.right) {
|
|
133
|
+
dimensions |= 1;
|
|
134
|
+
}
|
|
135
|
+
if (childContext.heightModel.calculated && anchorSpec.bottom) {
|
|
136
|
+
dimensions |= 2;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
if (dimensions == 3) { // if (both dimensions in play)
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
ownerContext.anchorDimensions = dimensions;
|
|
146
|
+
|
|
147
|
+
// Work around WebKit RightMargin bug. We're going to inline-block all the children
|
|
148
|
+
// only ONCE and remove it when we're done
|
|
149
|
+
if (!Ext.supports.RightMargin && !me.rightMarginCleanerFn) {
|
|
150
|
+
target = ownerContext.targetContext.el; // targetContext is added by superclass
|
|
151
|
+
|
|
152
|
+
me.rightMarginCleanerFn = Ext.Element.getRightMarginFixCleaner(target);
|
|
153
|
+
target.addCls(Ext.baseCSSPrefix + 'inline-children');
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
//<debug>
|
|
157
|
+
me.sanityCheck(ownerContext);
|
|
158
|
+
//</debug>
|
|
159
|
+
},
|
|
160
|
+
|
|
161
|
+
calculate: function (ownerContext) {
|
|
162
|
+
var me = this,
|
|
163
|
+
containerSize = me.getContainerSize(ownerContext);
|
|
164
|
+
|
|
165
|
+
if (ownerContext.anchorDimensions !== ownerContext.state.calculatedAnchors) {
|
|
166
|
+
me.calculateAnchors(ownerContext, containerSize);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (ownerContext.hasDomProp('containerChildrenDone')) {
|
|
170
|
+
// Once the child layouts are done we can determine the content sizes...
|
|
171
|
+
|
|
172
|
+
if (!containerSize.gotAll) {
|
|
173
|
+
me.done = false;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
me.calculateContentSize(ownerContext, ownerContext.anchorDimensions);
|
|
177
|
+
|
|
178
|
+
if (me.done) {
|
|
179
|
+
me.calculateOverflow(ownerContext, containerSize, ownerContext.anchorDimensions);
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
me.done = false;
|
|
185
|
+
},
|
|
186
|
+
|
|
187
|
+
calculateAnchors: function (ownerContext, containerSize) {
|
|
188
|
+
var me = this,
|
|
189
|
+
childItems = ownerContext.childItems,
|
|
190
|
+
length = childItems.length,
|
|
191
|
+
gotHeight = containerSize.gotHeight,
|
|
192
|
+
gotWidth = containerSize.gotWidth,
|
|
193
|
+
ownerHeight = containerSize.height,
|
|
194
|
+
ownerWidth = containerSize.width,
|
|
195
|
+
state = ownerContext.state,
|
|
196
|
+
calculatedAnchors = (gotWidth ? 1 : 0) | (gotHeight ? 2 : 0),
|
|
197
|
+
anchorSpec, childContext, childMargins, height, i, width;
|
|
198
|
+
|
|
199
|
+
state.calculatedAnchors = (state.calculatedAnchors || 0) | calculatedAnchors;
|
|
200
|
+
|
|
201
|
+
for (i = 0; i < length; i++) {
|
|
202
|
+
childContext = childItems[i];
|
|
203
|
+
childMargins = childContext.getMarginInfo();
|
|
204
|
+
anchorSpec = childContext.target.anchorSpec;
|
|
205
|
+
|
|
206
|
+
// Check widthModel in case "defaults" has applied an anchor to a component
|
|
207
|
+
// that also has width (which must win). If we did not make this check in this
|
|
208
|
+
// way, we would attempt to calculate a width where it had been configured.
|
|
209
|
+
//
|
|
210
|
+
if (gotWidth && childContext.widthModel.calculated) {
|
|
211
|
+
width = anchorSpec.right(ownerWidth) - childMargins.width;
|
|
212
|
+
width = me.adjustWidthAnchor(width, childContext);
|
|
213
|
+
|
|
214
|
+
childContext.setWidth(width);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// Repeat for height
|
|
218
|
+
if (gotHeight && childContext.heightModel.calculated) {
|
|
219
|
+
height = anchorSpec.bottom(ownerHeight) - childMargins.height;
|
|
220
|
+
height = me.adjustHeightAnchor(height, childContext);
|
|
221
|
+
|
|
222
|
+
childContext.setHeight(height);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
|
|
227
|
+
finishedLayout: function (ownerContext) {
|
|
228
|
+
var cleanerFn = this.rightMarginCleanerFn;
|
|
229
|
+
|
|
230
|
+
if (cleanerFn) {
|
|
231
|
+
delete this.rightMarginCleanerFn;
|
|
232
|
+
ownerContext.targetContext.el.removeCls(Ext.baseCSSPrefix + 'inline-children');
|
|
233
|
+
cleanerFn();
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
|
|
237
|
+
//<debug>
|
|
238
|
+
sanityCheck: function (ownerContext) {
|
|
239
|
+
var shrinkWrapWidth = ownerContext.widthModel.shrinkWrap,
|
|
240
|
+
shrinkWrapHeight = ownerContext.heightModel.shrinkWrap,
|
|
241
|
+
children = ownerContext.childItems,
|
|
242
|
+
anchorSpec, comp, childContext,
|
|
243
|
+
i, length;
|
|
244
|
+
|
|
245
|
+
for (i = 0, length = children.length; i < length; ++i) {
|
|
246
|
+
childContext = children[i];
|
|
247
|
+
comp = childContext.target;
|
|
248
|
+
anchorSpec = comp.anchorSpec;
|
|
249
|
+
|
|
250
|
+
if (anchorSpec) {
|
|
251
|
+
if (childContext.widthModel.calculated && anchorSpec.right) {
|
|
252
|
+
if (shrinkWrapWidth) {
|
|
253
|
+
Ext.log({
|
|
254
|
+
level: 'warn',
|
|
255
|
+
msg: 'Right anchor on '+comp.id+' in shrinkWrap width container'
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
if (childContext.heightModel.calculated && anchorSpec.bottom) {
|
|
261
|
+
if (shrinkWrapHeight) {
|
|
262
|
+
Ext.log({
|
|
263
|
+
level: 'warn',
|
|
264
|
+
msg: 'Bottom anchor on '+comp.id+' in shrinkWrap height container'
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
},
|
|
271
|
+
//</debug>
|
|
272
|
+
|
|
273
|
+
// private
|
|
274
|
+
anchorFactory: {
|
|
275
|
+
offset: function (delta) {
|
|
276
|
+
return function(v) {
|
|
277
|
+
return v + delta;
|
|
278
|
+
};
|
|
279
|
+
},
|
|
280
|
+
ratio: function (ratio) {
|
|
281
|
+
return function(v) {
|
|
282
|
+
return Math.floor(v * ratio);
|
|
283
|
+
};
|
|
284
|
+
},
|
|
285
|
+
standard: function (diff) {
|
|
286
|
+
return function(v) {
|
|
287
|
+
return v - diff;
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
},
|
|
291
|
+
|
|
292
|
+
parseAnchor: function(a, start, cstart) {
|
|
293
|
+
if (a && a != 'none') {
|
|
294
|
+
var factory = this.anchorFactory,
|
|
295
|
+
delta;
|
|
296
|
+
|
|
297
|
+
if (this.parseAnchorRE.test(a)) {
|
|
298
|
+
return factory.standard(cstart - start);
|
|
299
|
+
}
|
|
300
|
+
if (a.indexOf('%') != -1) {
|
|
301
|
+
return factory.ratio(parseFloat(a.replace('%', '')) * 0.01);
|
|
302
|
+
}
|
|
303
|
+
delta = parseInt(a, 10);
|
|
304
|
+
if (!isNaN(delta)) {
|
|
305
|
+
return factory.offset(delta);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
return null;
|
|
309
|
+
},
|
|
310
|
+
|
|
311
|
+
// private
|
|
312
|
+
adjustWidthAnchor: function(value, childContext) {
|
|
313
|
+
return value;
|
|
314
|
+
},
|
|
315
|
+
|
|
316
|
+
// private
|
|
317
|
+
adjustHeightAnchor: function(value, childContext) {
|
|
318
|
+
return value;
|
|
319
|
+
},
|
|
320
|
+
|
|
321
|
+
configureItem: function(item) {
|
|
322
|
+
var me = this,
|
|
323
|
+
owner = me.owner,
|
|
324
|
+
anchor= item.anchor,
|
|
325
|
+
anchorsArray,
|
|
326
|
+
anchorWidth,
|
|
327
|
+
anchorHeight;
|
|
328
|
+
|
|
329
|
+
me.callParent(arguments);
|
|
330
|
+
|
|
331
|
+
if (!item.anchor && item.items && !Ext.isNumber(item.width) && !(Ext.isIE6 && Ext.isStrict)) {
|
|
332
|
+
item.anchor = anchor = me.defaultAnchor;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
/**
|
|
336
|
+
* @cfg {Number/Object} anchorSize
|
|
337
|
+
* Defines the anchoring size of container.
|
|
338
|
+
* Either a number to define the width of the container or an object with `width` and `height` fields.
|
|
339
|
+
* @member Ext.container.Container
|
|
340
|
+
*/
|
|
341
|
+
if (owner.anchorSize) {
|
|
342
|
+
if (typeof owner.anchorSize == 'number') {
|
|
343
|
+
anchorWidth = owner.anchorSize;
|
|
344
|
+
} else {
|
|
345
|
+
anchorWidth = owner.anchorSize.width;
|
|
346
|
+
anchorHeight = owner.anchorSize.height;
|
|
347
|
+
}
|
|
348
|
+
} else {
|
|
349
|
+
anchorWidth = owner.initialConfig.width;
|
|
350
|
+
anchorHeight = owner.initialConfig.height;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
if (anchor) {
|
|
354
|
+
// cache all anchor values
|
|
355
|
+
anchorsArray = anchor.split(' ');
|
|
356
|
+
item.anchorSpec = {
|
|
357
|
+
right: me.parseAnchor(anchorsArray[0], item.initialConfig.width, anchorWidth),
|
|
358
|
+
bottom: me.parseAnchor(anchorsArray[1], item.initialConfig.height, anchorHeight)
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
},
|
|
362
|
+
|
|
363
|
+
sizePolicy: {
|
|
364
|
+
'': {
|
|
365
|
+
setsWidth: 0,
|
|
366
|
+
setsHeight: 0
|
|
367
|
+
},
|
|
368
|
+
b: {
|
|
369
|
+
setsWidth: 0,
|
|
370
|
+
setsHeight: 1
|
|
371
|
+
},
|
|
372
|
+
r: {
|
|
373
|
+
'': {
|
|
374
|
+
setsWidth: 1,
|
|
375
|
+
setsHeight: 0
|
|
376
|
+
},
|
|
377
|
+
b: {
|
|
378
|
+
setsWidth: 1,
|
|
379
|
+
setsHeight: 1
|
|
380
|
+
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
},
|
|
384
|
+
|
|
385
|
+
getItemSizePolicy: function (item) {
|
|
386
|
+
var anchorSpec = item.anchorSpec,
|
|
387
|
+
key = '',
|
|
388
|
+
policy = this.sizePolicy,
|
|
389
|
+
sizeModel;
|
|
390
|
+
|
|
391
|
+
if (anchorSpec) {
|
|
392
|
+
sizeModel = this.owner.getSizeModel();
|
|
393
|
+
if (anchorSpec.right && !sizeModel.width.shrinkWrap) {
|
|
394
|
+
policy = policy.r;
|
|
395
|
+
}
|
|
396
|
+
if (anchorSpec.bottom && !sizeModel.height.shrinkWrap) {
|
|
397
|
+
key = 'b';
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
return policy[key];
|
|
402
|
+
}
|
|
403
|
+
});
|