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,333 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @class Ext.String
|
|
3
|
+
*
|
|
4
|
+
* A collection of useful static methods to deal with strings
|
|
5
|
+
* @singleton
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
Ext.String = (function() {
|
|
9
|
+
var trimRegex = /^[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]+|[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]+$/g,
|
|
10
|
+
escapeRe = /('|\\)/g,
|
|
11
|
+
formatRe = /\{(\d+)\}/g,
|
|
12
|
+
escapeRegexRe = /([-.*+?\^${}()|\[\]\/\\])/g,
|
|
13
|
+
basicTrimRe = /^\s+|\s+$/g,
|
|
14
|
+
whitespaceRe = /\s+/,
|
|
15
|
+
varReplace = /(^[^a-z]*|[^\w])/gi,
|
|
16
|
+
charToEntity,
|
|
17
|
+
entityToChar,
|
|
18
|
+
charToEntityRegex,
|
|
19
|
+
entityToCharRegex,
|
|
20
|
+
htmlEncodeReplaceFn = function(match, capture) {
|
|
21
|
+
return charToEntity[capture];
|
|
22
|
+
},
|
|
23
|
+
htmlDecodeReplaceFn = function(match, capture) {
|
|
24
|
+
return (capture in entityToChar) ? entityToChar[capture] : String.fromCharCode(parseInt(capture.substr(2), 10));
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Converts a string of characters into a legal, parseable Javascript `var` name as long as the passed
|
|
31
|
+
* string contains at least one alphabetic character. Non alphanumeric characters, and *leading* non alphabetic
|
|
32
|
+
* characters will be removed.
|
|
33
|
+
* @param {String} s A string to be converted into a `var` name.
|
|
34
|
+
* @return {String} A legal Javascript `var` name.
|
|
35
|
+
*/
|
|
36
|
+
createVarName: function(s) {
|
|
37
|
+
return s.replace(varReplace, '');
|
|
38
|
+
},
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Convert certain characters (&, <, >, ', and ") to their HTML character equivalents for literal display in web pages.
|
|
42
|
+
* @param {String} value The string to encode
|
|
43
|
+
* @return {String} The encoded text
|
|
44
|
+
* @method
|
|
45
|
+
*/
|
|
46
|
+
htmlEncode: function(value) {
|
|
47
|
+
return (!value) ? value : String(value).replace(charToEntityRegex, htmlEncodeReplaceFn);
|
|
48
|
+
},
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Convert certain characters (&, <, >, ', and ") from their HTML character equivalents.
|
|
52
|
+
* @param {String} value The string to decode
|
|
53
|
+
* @return {String} The decoded text
|
|
54
|
+
* @method
|
|
55
|
+
*/
|
|
56
|
+
htmlDecode: function(value) {
|
|
57
|
+
return (!value) ? value : String(value).replace(entityToCharRegex, htmlDecodeReplaceFn);
|
|
58
|
+
},
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Adds a set of character entity definitions to the set used by
|
|
62
|
+
* {@link Ext.String#htmlEncode} and {@link Ext.String#htmlDecode}.
|
|
63
|
+
*
|
|
64
|
+
* This object should be keyed by the entity name sequence,
|
|
65
|
+
* with the value being the textual representation of the entity.
|
|
66
|
+
*
|
|
67
|
+
* Ext.String.addCharacterEntities({
|
|
68
|
+
* '&Uuml;':'Ü',
|
|
69
|
+
* '&ccedil;':'ç',
|
|
70
|
+
* '&ntilde;':'ñ',
|
|
71
|
+
* '&egrave;':'è'
|
|
72
|
+
* });
|
|
73
|
+
* var s = Ext.String.htmlEncode("A string with entities: èÜçñ");
|
|
74
|
+
*
|
|
75
|
+
* Note: the values of the character entites defined on this object are expected
|
|
76
|
+
* to be single character values. As such, the actual values represented by the
|
|
77
|
+
* characters are sensitive to the character encoding of the javascript source
|
|
78
|
+
* file when defined in string literal form. Script tasgs referencing server
|
|
79
|
+
* resources with character entities must ensure that the 'charset' attribute
|
|
80
|
+
* of the script node is consistent with the actual character encoding of the
|
|
81
|
+
* server resource.
|
|
82
|
+
*
|
|
83
|
+
* The set of character entities may be reset back to the default state by using
|
|
84
|
+
* the {@link Ext.String#resetCharacterEntities} method
|
|
85
|
+
*
|
|
86
|
+
* @param {Object} entities The set of character entities to add to the current
|
|
87
|
+
* definitions.
|
|
88
|
+
*/
|
|
89
|
+
addCharacterEntities: function(newEntities) {
|
|
90
|
+
var charKeys = [],
|
|
91
|
+
entityKeys = [],
|
|
92
|
+
key, echar;
|
|
93
|
+
for (key in newEntities) {
|
|
94
|
+
echar = newEntities[key];
|
|
95
|
+
entityToChar[key] = echar;
|
|
96
|
+
charToEntity[echar] = key;
|
|
97
|
+
charKeys.push(echar);
|
|
98
|
+
entityKeys.push(key);
|
|
99
|
+
}
|
|
100
|
+
charToEntityRegex = new RegExp('(' + charKeys.join('|') + ')', 'g');
|
|
101
|
+
entityToCharRegex = new RegExp('(' + entityKeys.join('|') + '|&#[0-9]{1,5};' + ')', 'g');
|
|
102
|
+
},
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Resets the set of character entity definitions used by
|
|
106
|
+
* {@link Ext.String#htmlEncode} and {@link Ext.String#htmlDecode} back to the
|
|
107
|
+
* default state.
|
|
108
|
+
*/
|
|
109
|
+
resetCharacterEntities: function() {
|
|
110
|
+
charToEntity = {};
|
|
111
|
+
entityToChar = {};
|
|
112
|
+
// add the default set
|
|
113
|
+
this.addCharacterEntities({
|
|
114
|
+
'&' : '&',
|
|
115
|
+
'>' : '>',
|
|
116
|
+
'<' : '<',
|
|
117
|
+
'"' : '"',
|
|
118
|
+
''' : "'"
|
|
119
|
+
});
|
|
120
|
+
},
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Appends content to the query string of a URL, handling logic for whether to place
|
|
124
|
+
* a question mark or ampersand.
|
|
125
|
+
* @param {String} url The URL to append to.
|
|
126
|
+
* @param {String} string The content to append to the URL.
|
|
127
|
+
* @return {String} The resulting URL
|
|
128
|
+
*/
|
|
129
|
+
urlAppend : function(url, string) {
|
|
130
|
+
if (!Ext.isEmpty(string)) {
|
|
131
|
+
return url + (url.indexOf('?') === -1 ? '?' : '&') + string;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
return url;
|
|
135
|
+
},
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Trims whitespace from either end of a string, leaving spaces within the string intact. Example:
|
|
139
|
+
* @example
|
|
140
|
+
var s = ' foo bar ';
|
|
141
|
+
alert('-' + s + '-'); //alerts "- foo bar -"
|
|
142
|
+
alert('-' + Ext.String.trim(s) + '-'); //alerts "-foo bar-"
|
|
143
|
+
|
|
144
|
+
* @param {String} string The string to escape
|
|
145
|
+
* @return {String} The trimmed string
|
|
146
|
+
*/
|
|
147
|
+
trim: function(string) {
|
|
148
|
+
return string.replace(trimRegex, "");
|
|
149
|
+
},
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Capitalize the given string
|
|
153
|
+
* @param {String} string
|
|
154
|
+
* @return {String}
|
|
155
|
+
*/
|
|
156
|
+
capitalize: function(string) {
|
|
157
|
+
return string.charAt(0).toUpperCase() + string.substr(1);
|
|
158
|
+
},
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Uncapitalize the given string
|
|
162
|
+
* @param {String} string
|
|
163
|
+
* @return {String}
|
|
164
|
+
*/
|
|
165
|
+
uncapitalize: function(string) {
|
|
166
|
+
return string.charAt(0).toLowerCase() + string.substr(1);
|
|
167
|
+
},
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Truncate a string and add an ellipsis ('...') to the end if it exceeds the specified length
|
|
171
|
+
* @param {String} value The string to truncate
|
|
172
|
+
* @param {Number} length The maximum length to allow before truncating
|
|
173
|
+
* @param {Boolean} word True to try to find a common word break
|
|
174
|
+
* @return {String} The converted text
|
|
175
|
+
*/
|
|
176
|
+
ellipsis: function(value, len, word) {
|
|
177
|
+
if (value && value.length > len) {
|
|
178
|
+
if (word) {
|
|
179
|
+
var vs = value.substr(0, len - 2),
|
|
180
|
+
index = Math.max(vs.lastIndexOf(' '), vs.lastIndexOf('.'), vs.lastIndexOf('!'), vs.lastIndexOf('?'));
|
|
181
|
+
if (index !== -1 && index >= (len - 15)) {
|
|
182
|
+
return vs.substr(0, index) + "...";
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return value.substr(0, len - 3) + "...";
|
|
186
|
+
}
|
|
187
|
+
return value;
|
|
188
|
+
},
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Escapes the passed string for use in a regular expression
|
|
192
|
+
* @param {String} string
|
|
193
|
+
* @return {String}
|
|
194
|
+
*/
|
|
195
|
+
escapeRegex: function(string) {
|
|
196
|
+
return string.replace(escapeRegexRe, "\\$1");
|
|
197
|
+
},
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Escapes the passed string for ' and \
|
|
201
|
+
* @param {String} string The string to escape
|
|
202
|
+
* @return {String} The escaped string
|
|
203
|
+
*/
|
|
204
|
+
escape: function(string) {
|
|
205
|
+
return string.replace(escapeRe, "\\$1");
|
|
206
|
+
},
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Utility function that allows you to easily switch a string between two alternating values. The passed value
|
|
210
|
+
* is compared to the current string, and if they are equal, the other value that was passed in is returned. If
|
|
211
|
+
* they are already different, the first value passed in is returned. Note that this method returns the new value
|
|
212
|
+
* but does not change the current string.
|
|
213
|
+
* <pre><code>
|
|
214
|
+
// alternate sort directions
|
|
215
|
+
sort = Ext.String.toggle(sort, 'ASC', 'DESC');
|
|
216
|
+
|
|
217
|
+
// instead of conditional logic:
|
|
218
|
+
sort = (sort == 'ASC' ? 'DESC' : 'ASC');
|
|
219
|
+
</code></pre>
|
|
220
|
+
* @param {String} string The current string
|
|
221
|
+
* @param {String} value The value to compare to the current string
|
|
222
|
+
* @param {String} other The new value to use if the string already equals the first value passed in
|
|
223
|
+
* @return {String} The new value
|
|
224
|
+
*/
|
|
225
|
+
toggle: function(string, value, other) {
|
|
226
|
+
return string === value ? other : value;
|
|
227
|
+
},
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Pads the left side of a string with a specified character. This is especially useful
|
|
231
|
+
* for normalizing number and date strings. Example usage:
|
|
232
|
+
*
|
|
233
|
+
* <pre><code>
|
|
234
|
+
var s = Ext.String.leftPad('123', 5, '0');
|
|
235
|
+
// s now contains the string: '00123'
|
|
236
|
+
</code></pre>
|
|
237
|
+
* @param {String} string The original string
|
|
238
|
+
* @param {Number} size The total length of the output string
|
|
239
|
+
* @param {String} character (optional) The character with which to pad the original string (defaults to empty string " ")
|
|
240
|
+
* @return {String} The padded string
|
|
241
|
+
*/
|
|
242
|
+
leftPad: function(string, size, character) {
|
|
243
|
+
var result = String(string);
|
|
244
|
+
character = character || " ";
|
|
245
|
+
while (result.length < size) {
|
|
246
|
+
result = character + result;
|
|
247
|
+
}
|
|
248
|
+
return result;
|
|
249
|
+
},
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Allows you to define a tokenized string and pass an arbitrary number of arguments to replace the tokens. Each
|
|
253
|
+
* token must be unique, and must increment in the format {0}, {1}, etc. Example usage:
|
|
254
|
+
* <pre><code>
|
|
255
|
+
var cls = 'my-class', text = 'Some text';
|
|
256
|
+
var s = Ext.String.format('<div class="{0}">{1}</div>', cls, text);
|
|
257
|
+
// s now contains the string: '<div class="my-class">Some text</div>'
|
|
258
|
+
</code></pre>
|
|
259
|
+
* @param {String} string The tokenized string to be formatted
|
|
260
|
+
* @param {String} value1 The value to replace token {0}
|
|
261
|
+
* @param {String} value2 Etc...
|
|
262
|
+
* @return {String} The formatted string
|
|
263
|
+
*/
|
|
264
|
+
format: function(format) {
|
|
265
|
+
var args = Ext.Array.toArray(arguments, 1);
|
|
266
|
+
return format.replace(formatRe, function(m, i) {
|
|
267
|
+
return args[i];
|
|
268
|
+
});
|
|
269
|
+
},
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* Returns a string with a specified number of repititions a given string pattern.
|
|
273
|
+
* The pattern be separated by a different string.
|
|
274
|
+
*
|
|
275
|
+
* var s = Ext.String.repeat('---', 4); // = '------------'
|
|
276
|
+
* var t = Ext.String.repeat('--', 3, '/'); // = '--/--/--'
|
|
277
|
+
*
|
|
278
|
+
* @param {String} pattern The pattern to repeat.
|
|
279
|
+
* @param {Number} count The number of times to repeat the pattern (may be 0).
|
|
280
|
+
* @param {String} sep An option string to separate each pattern.
|
|
281
|
+
*/
|
|
282
|
+
repeat: function(pattern, count, sep) {
|
|
283
|
+
for (var buf = [], i = count; i--; ) {
|
|
284
|
+
buf.push(pattern);
|
|
285
|
+
}
|
|
286
|
+
return buf.join(sep || '');
|
|
287
|
+
},
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Splits a string of space separated words into an array, trimming as needed. If the
|
|
291
|
+
* words are already an array, it is returned.
|
|
292
|
+
*
|
|
293
|
+
* @param {String/Array} words
|
|
294
|
+
*/
|
|
295
|
+
splitWords: function (words) {
|
|
296
|
+
if (words && typeof words == 'string') {
|
|
297
|
+
return words.replace(basicTrimRe, '').split(whitespaceRe);
|
|
298
|
+
}
|
|
299
|
+
return words || [];
|
|
300
|
+
}
|
|
301
|
+
};
|
|
302
|
+
}());
|
|
303
|
+
|
|
304
|
+
// initialize the default encode / decode entities
|
|
305
|
+
Ext.String.resetCharacterEntities();
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* Old alias to {@link Ext.String#htmlEncode}
|
|
309
|
+
* @deprecated Use {@link Ext.String#htmlEncode} instead
|
|
310
|
+
* @method
|
|
311
|
+
* @member Ext
|
|
312
|
+
* @inheritdoc Ext.String#htmlEncode
|
|
313
|
+
*/
|
|
314
|
+
Ext.htmlEncode = Ext.String.htmlEncode;
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* Old alias to {@link Ext.String#htmlDecode}
|
|
319
|
+
* @deprecated Use {@link Ext.String#htmlDecode} instead
|
|
320
|
+
* @method
|
|
321
|
+
* @member Ext
|
|
322
|
+
* @inheritdoc Ext.String#htmlDecode
|
|
323
|
+
*/
|
|
324
|
+
Ext.htmlDecode = Ext.String.htmlDecode;
|
|
325
|
+
|
|
326
|
+
/**
|
|
327
|
+
* Old alias to {@link Ext.String#urlAppend}
|
|
328
|
+
* @deprecated Use {@link Ext.String#urlAppend} instead
|
|
329
|
+
* @method
|
|
330
|
+
* @member Ext
|
|
331
|
+
* @inheritdoc Ext.String#urlAppend
|
|
332
|
+
*/
|
|
333
|
+
Ext.urlAppend = Ext.String.urlAppend;
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @class Ext.JSON
|
|
3
|
+
* Modified version of Douglas Crockford's JSON.js that doesn't
|
|
4
|
+
* mess with the Object prototype
|
|
5
|
+
* http://www.json.org/js.html
|
|
6
|
+
* @singleton
|
|
7
|
+
*/
|
|
8
|
+
Ext.JSON = (new(function() {
|
|
9
|
+
var me = this,
|
|
10
|
+
encodingFunction,
|
|
11
|
+
decodingFunction,
|
|
12
|
+
useNative = null,
|
|
13
|
+
useHasOwn = !! {}.hasOwnProperty,
|
|
14
|
+
isNative = function() {
|
|
15
|
+
if (useNative === null) {
|
|
16
|
+
useNative = Ext.USE_NATIVE_JSON && window.JSON && JSON.toString() == '[object JSON]';
|
|
17
|
+
}
|
|
18
|
+
return useNative;
|
|
19
|
+
},
|
|
20
|
+
pad = function(n) {
|
|
21
|
+
return n < 10 ? "0" + n : n;
|
|
22
|
+
},
|
|
23
|
+
doDecode = function(json) {
|
|
24
|
+
return eval("(" + json + ')');
|
|
25
|
+
},
|
|
26
|
+
doEncode = function(o, newline) {
|
|
27
|
+
// http://jsperf.com/is-undefined
|
|
28
|
+
if (o === null || o === undefined) {
|
|
29
|
+
return "null";
|
|
30
|
+
} else if (Ext.isDate(o)) {
|
|
31
|
+
return Ext.JSON.encodeDate(o);
|
|
32
|
+
} else if (Ext.isString(o)) {
|
|
33
|
+
return encodeString(o);
|
|
34
|
+
} else if (typeof o == "number") {
|
|
35
|
+
//don't use isNumber here, since finite checks happen inside isNumber
|
|
36
|
+
return isFinite(o) ? String(o) : "null";
|
|
37
|
+
} else if (Ext.isBoolean(o)) {
|
|
38
|
+
return String(o);
|
|
39
|
+
}
|
|
40
|
+
// Allow custom zerialization by adding a toJSON method to any object type.
|
|
41
|
+
// Date/String have a toJSON in some environments, so check these first.
|
|
42
|
+
else if (o.toJSON) {
|
|
43
|
+
return o.toJSON();
|
|
44
|
+
} else if (Ext.isArray(o)) {
|
|
45
|
+
return encodeArray(o, newline);
|
|
46
|
+
} else if (Ext.isObject(o)) {
|
|
47
|
+
return encodeObject(o, newline);
|
|
48
|
+
} else if (typeof o === "function") {
|
|
49
|
+
return "null";
|
|
50
|
+
}
|
|
51
|
+
return 'undefined';
|
|
52
|
+
},
|
|
53
|
+
m = {
|
|
54
|
+
"\b": '\\b',
|
|
55
|
+
"\t": '\\t',
|
|
56
|
+
"\n": '\\n',
|
|
57
|
+
"\f": '\\f',
|
|
58
|
+
"\r": '\\r',
|
|
59
|
+
'"': '\\"',
|
|
60
|
+
"\\": '\\\\',
|
|
61
|
+
'\x0b': '\\u000b' //ie doesn't handle \v
|
|
62
|
+
},
|
|
63
|
+
charToReplace = /[\\\"\x00-\x1f\x7f-\uffff]/g,
|
|
64
|
+
encodeString = function(s) {
|
|
65
|
+
return '"' + s.replace(charToReplace, function(a) {
|
|
66
|
+
var c = m[a];
|
|
67
|
+
return typeof c === 'string' ? c : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
|
|
68
|
+
}) + '"';
|
|
69
|
+
},
|
|
70
|
+
|
|
71
|
+
//<debug>
|
|
72
|
+
encodeArrayPretty = function(o, newline) {
|
|
73
|
+
var len = o.length,
|
|
74
|
+
cnewline = newline + ' ',
|
|
75
|
+
sep = ',' + cnewline,
|
|
76
|
+
a = ["[", cnewline], // Note newline in case there are no members
|
|
77
|
+
i;
|
|
78
|
+
|
|
79
|
+
for (i = 0; i < len; i += 1) {
|
|
80
|
+
a.push(doEncode(o[i], cnewline), sep);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Overwrite trailing comma (or empty string)
|
|
84
|
+
a[a.length - 1] = newline + ']';
|
|
85
|
+
|
|
86
|
+
return a.join('');
|
|
87
|
+
},
|
|
88
|
+
|
|
89
|
+
encodeObjectPretty = function(o, newline) {
|
|
90
|
+
var cnewline = newline + ' ',
|
|
91
|
+
sep = ',' + cnewline,
|
|
92
|
+
a = ["{", cnewline], // Note newline in case there are no members
|
|
93
|
+
i;
|
|
94
|
+
|
|
95
|
+
for (i in o) {
|
|
96
|
+
if (!useHasOwn || o.hasOwnProperty(i)) {
|
|
97
|
+
a.push(doEncode(i) + ': ' + doEncode(o[i], cnewline), sep);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Overwrite trailing comma (or empty string)
|
|
102
|
+
a[a.length - 1] = newline + '}';
|
|
103
|
+
|
|
104
|
+
return a.join('');
|
|
105
|
+
},
|
|
106
|
+
//</debug>
|
|
107
|
+
|
|
108
|
+
encodeArray = function(o, newline) {
|
|
109
|
+
//<debug>
|
|
110
|
+
if (newline) {
|
|
111
|
+
return encodeArrayPretty(o, newline);
|
|
112
|
+
}
|
|
113
|
+
//</debug>
|
|
114
|
+
|
|
115
|
+
var a = ["[", ""], // Note empty string in case there are no serializable members.
|
|
116
|
+
len = o.length,
|
|
117
|
+
i;
|
|
118
|
+
for (i = 0; i < len; i += 1) {
|
|
119
|
+
a.push(doEncode(o[i]), ',');
|
|
120
|
+
}
|
|
121
|
+
// Overwrite trailing comma (or empty string)
|
|
122
|
+
a[a.length - 1] = ']';
|
|
123
|
+
return a.join("");
|
|
124
|
+
},
|
|
125
|
+
|
|
126
|
+
encodeObject = function(o, newline) {
|
|
127
|
+
//<debug>
|
|
128
|
+
if (newline) {
|
|
129
|
+
return encodeObjectPretty(o, newline);
|
|
130
|
+
}
|
|
131
|
+
//</debug>
|
|
132
|
+
|
|
133
|
+
var a = ["{", ""], // Note empty string in case there are no serializable members.
|
|
134
|
+
i;
|
|
135
|
+
for (i in o) {
|
|
136
|
+
if (!useHasOwn || o.hasOwnProperty(i)) {
|
|
137
|
+
a.push(doEncode(i), ":", doEncode(o[i]), ',');
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// Overwrite trailing comma (or empty string)
|
|
141
|
+
a[a.length - 1] = '}';
|
|
142
|
+
return a.join("");
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* The function which {@link #encode} uses to encode all javascript values to their JSON representations
|
|
147
|
+
* when {@link Ext#USE_NATIVE_JSON} is `false`.
|
|
148
|
+
*
|
|
149
|
+
* This is made public so that it can be replaced with a custom implementation.
|
|
150
|
+
*
|
|
151
|
+
* @param {Object} o Any javascript value to be converted to its JSON representation
|
|
152
|
+
* @return {String} The JSON representation of the passed value.
|
|
153
|
+
* @method
|
|
154
|
+
*/
|
|
155
|
+
me.encodeValue = doEncode;
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Encodes a Date. This returns the actual string which is inserted into the JSON string as the literal expression.
|
|
159
|
+
* **The returned value includes enclosing double quotation marks.**
|
|
160
|
+
*
|
|
161
|
+
* The default return format is "yyyy-mm-ddThh:mm:ss".
|
|
162
|
+
*
|
|
163
|
+
* To override this:
|
|
164
|
+
* Ext.JSON.encodeDate = function(d) {
|
|
165
|
+
* return Ext.Date.format(d, '"Y-m-d"');
|
|
166
|
+
* };
|
|
167
|
+
*
|
|
168
|
+
* @param {Date} d The Date to encode
|
|
169
|
+
* @return {String} The string literal to use in a JSON string.
|
|
170
|
+
*/
|
|
171
|
+
me.encodeDate = function(o) {
|
|
172
|
+
return '"' + o.getFullYear() + "-"
|
|
173
|
+
+ pad(o.getMonth() + 1) + "-"
|
|
174
|
+
+ pad(o.getDate()) + "T"
|
|
175
|
+
+ pad(o.getHours()) + ":"
|
|
176
|
+
+ pad(o.getMinutes()) + ":"
|
|
177
|
+
+ pad(o.getSeconds()) + '"';
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Encodes an Object, Array or other value.
|
|
182
|
+
*
|
|
183
|
+
* If the environment's native JSON encoding is not being used ({@link Ext#USE_NATIVE_JSON} is not set, or the environment does not support it), then
|
|
184
|
+
* ExtJS's encoding will be used. This allows the developer to add a `toJSON` method to their classes which need serializing to return a valid
|
|
185
|
+
* JSON representation of the object.
|
|
186
|
+
*
|
|
187
|
+
* @param {Object} o The variable to encode
|
|
188
|
+
* @return {String} The JSON string
|
|
189
|
+
*/
|
|
190
|
+
me.encode = function(o) {
|
|
191
|
+
if (!encodingFunction) {
|
|
192
|
+
// setup encoding function on first access
|
|
193
|
+
encodingFunction = isNative() ? JSON.stringify : me.encodeValue;
|
|
194
|
+
}
|
|
195
|
+
return encodingFunction(o);
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Decodes (parses) a JSON string to an object. If the JSON is invalid, this function throws a SyntaxError unless the safe option is set.
|
|
200
|
+
* @param {String} json The JSON string
|
|
201
|
+
* @param {Boolean} safe (optional) Whether to return null or throw an exception if the JSON is invalid.
|
|
202
|
+
* @return {Object} The resulting object
|
|
203
|
+
*/
|
|
204
|
+
me.decode = function(json, safe) {
|
|
205
|
+
if (!decodingFunction) {
|
|
206
|
+
// setup decoding function on first access
|
|
207
|
+
decodingFunction = isNative() ? JSON.parse : doDecode;
|
|
208
|
+
}
|
|
209
|
+
try {
|
|
210
|
+
return decodingFunction(json);
|
|
211
|
+
} catch (e) {
|
|
212
|
+
if (safe === true) {
|
|
213
|
+
return null;
|
|
214
|
+
}
|
|
215
|
+
Ext.Error.raise({
|
|
216
|
+
sourceClass: "Ext.JSON",
|
|
217
|
+
sourceMethod: "decode",
|
|
218
|
+
msg: "You're trying to decode an invalid JSON String: " + json
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
})());
|
|
223
|
+
/**
|
|
224
|
+
* Shorthand for {@link Ext.JSON#encode}
|
|
225
|
+
* @member Ext
|
|
226
|
+
* @method encode
|
|
227
|
+
* @inheritdoc Ext.JSON#encode
|
|
228
|
+
*/
|
|
229
|
+
Ext.encode = Ext.JSON.encode;
|
|
230
|
+
/**
|
|
231
|
+
* Shorthand for {@link Ext.JSON#decode}
|
|
232
|
+
* @member Ext
|
|
233
|
+
* @method decode
|
|
234
|
+
* @inheritdoc Ext.JSON#decode
|
|
235
|
+
*/
|
|
236
|
+
Ext.decode = Ext.JSON.decode;
|