http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e2cad6e6/externs/GCL/GCL-compile-config.xml ---------------------------------------------------------------------- diff --git a/externs/GCL/GCL-compile-config.xml b/externs/GCL/GCL-compile-config.xml new file mode 100644 index 0000000..76c85a6 --- /dev/null +++ b/externs/GCL/GCL-compile-config.xml @@ -0,0 +1,901 @@ +<!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License</name></exclude> you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +--> +<flex-config> + + <as-root>out/as</as-root> + + <compiler> + <accessible>true</accessible> + + <locale/> + + <source-path> + <path-element>src</path-element> + </source-path> + + <warn-no-constructor>false</warn-no-constructor> + </compiler> + + <external> + <!--<path-element>externs/goog/base.js</path-element> + <path-element>externs/goog/a11y/aria/announcer.js</path-element> + <path-element>externs/goog/a11y/aria/aria.js</path-element> + <path-element>externs/goog/a11y/aria/attributes.js</path-element> + <path-element>externs/goog/a11y/aria/datatables.js</path-element> + <path-element>externs/goog/a11y/aria/roles.js</path-element> + <path-element>externs/goog/array/array.js</path-element> + <path-element>externs/goog/asserts/asserts.js</path-element> + <path-element>externs/goog/async/animationdelay.js</path-element> + <path-element>externs/goog/async/conditionaldelay.js</path-element> + <path-element>externs/goog/async/delay.js</path-element> + <path-element>externs/goog/async/freelist.js</path-element> + <path-element>externs/goog/async/nexttick.js</path-element> + <path-element>externs/goog/async/run.js</path-element> + <path-element>externs/goog/async/throttle.js</path-element> + <path-element>externs/goog/async/workqueue.js</path-element> + <path-element>externs/goog/bootstrap/nodejs.js</path-element> + <path-element>externs/goog/bootstrap/webworkers.js</path-element> + <path-element>externs/goog/color/alpha.js</path-element> + <path-element>externs/goog/color/color.js</path-element> + <path-element>externs/goog/color/names.js</path-element> + <path-element>externs/goog/crypt/aes.js</path-element> + <path-element>externs/goog/crypt/arc4.js</path-element> + <path-element>externs/goog/crypt/base64.js</path-element> + <path-element>externs/goog/crypt/basen.js</path-element> + <path-element>externs/goog/crypt/blobhasher.js</path-element> + <path-element>externs/goog/crypt/blockcipher.js</path-element> + <path-element>externs/goog/crypt/cbc.js</path-element> + <path-element>externs/goog/crypt/crypt.js</path-element> + <path-element>externs/goog/crypt/hash.js</path-element> + <path-element>externs/goog/crypt/hash32.js</path-element> + <path-element>externs/goog/crypt/hmac.js</path-element> + <path-element>externs/goog/crypt/md5.js</path-element> + <path-element>externs/goog/crypt/pbkdf2.js</path-element> + <path-element>externs/goog/crypt/sha1.js</path-element> + <path-element>externs/goog/crypt/sha2.js</path-element> + <path-element>externs/goog/crypt/sha224.js</path-element> + <path-element>externs/goog/crypt/sha256.js</path-element> + <path-element>externs/goog/crypt/sha2_64bit.js</path-element> + <path-element>externs/goog/crypt/sha384.js</path-element> + <path-element>externs/goog/crypt/sha512.js</path-element> + <path-element>externs/goog/crypt/sha512_256.js</path-element> + <path-element>externs/goog/cssom/cssom.js</path-element> + <path-element>externs/goog/cssom/iframe/style.js</path-element> + <path-element>externs/goog/datasource/datamanager.js</path-element> + <path-element>externs/goog/datasource/datasource.js</path-element> + <path-element>externs/goog/datasource/expr.js</path-element> + <path-element>externs/goog/datasource/fastdatanode.js</path-element> + <path-element>externs/goog/datasource/jsdatasource.js</path-element> + <path-element>externs/goog/datasource/jsondatasource.js</path-element> + <path-element>externs/goog/datasource/jsxmlhttpdatasource.js</path-element> + <path-element>externs/goog/datasource/xmldatasource.js</path-element> + <path-element>externs/goog/date/date.js</path-element> + <path-element>externs/goog/date/datelike.js</path-element> + <path-element>externs/goog/date/daterange.js</path-element> + <path-element>externs/goog/date/duration.js</path-element> + <path-element>externs/goog/date/relative.js</path-element> + <path-element>externs/goog/date/relativewithplurals.js</path-element> + <path-element>externs/goog/date/utcdatetime.js</path-element> + <path-element>externs/goog/db/cursor.js</path-element> + <path-element>externs/goog/db/db.js</path-element> + <path-element>externs/goog/db/error.js</path-element> + <path-element>externs/goog/db/index.js</path-element> + <path-element>externs/goog/db/indexeddb.js</path-element> + <path-element>externs/goog/db/keyrange.js</path-element> + <path-element>externs/goog/db/objectstore.js</path-element> + <path-element>externs/goog/db/transaction.js</path-element> + <path-element>externs/goog/debug/console.js</path-element> + <path-element>externs/goog/debug/debug.js</path-element> + <path-element>externs/goog/debug/debugwindow.js</path-element> + <path-element>externs/goog/debug/divconsole.js</path-element> + <path-element>externs/goog/debug/entrypointregistry.js</path-element> + <path-element>externs/goog/debug/error.js</path-element> + <path-element>externs/goog/debug/errorhandler.js</path-element> + <path-element>externs/goog/debug/errorhandlerweakdep.js</path-element> + <path-element>externs/goog/debug/errorreporter.js</path-element> + <path-element>externs/goog/debug/fancywindow.js</path-element> + <path-element>externs/goog/debug/formatter.js</path-element> + <path-element>externs/goog/debug/fpsdisplay.js</path-element> + <path-element>externs/goog/debug/gcdiagnostics.js</path-element> + <path-element>externs/goog/debug/logbuffer.js</path-element> + <path-element>externs/goog/debug/logger.js</path-element> + <path-element>externs/goog/debug/logrecord.js</path-element> + <path-element>externs/goog/debug/logrecordserializer.js</path-element> + <path-element>externs/goog/debug/relativetimeprovider.js</path-element> + <path-element>externs/goog/debug/tracer.js</path-element> + <path-element>externs/goog/debug/devcss/devcss.js</path-element> + <path-element>externs/goog/debug/devcss/devcssrunner.js</path-element> + <path-element>externs/goog/demos/autocompleteremotedata.js</path-element> + <path-element>externs/goog/demos/autocompleterichremotedata.js</path-element> + <path-element>externs/goog/demos/samplecomponent.js</path-element> + <path-element>externs/goog/demos/editor/deps.js</path-element> + <path-element>externs/goog/demos/editor/helloworld.js</path-element> + <path-element>externs/goog/demos/editor/helloworlddialog.js</path-element> + <path-element>externs/goog/demos/editor/helloworlddialogplugin.js</path-element> + <path-element>externs/goog/demos/graphics/tigerdata.js</path-element> + <path-element>externs/goog/demos/xpc/xpcdemo.js</path-element> + <path-element>externs/goog/dom/abstractmultirange.js</path-element> + <path-element>externs/goog/dom/abstractrange.js</path-element> + <path-element>externs/goog/dom/annotate.js</path-element> + <path-element>externs/goog/dom/browserfeature.js</path-element> + <path-element>externs/goog/dom/bufferedviewportsizemonitor.js</path-element> + <path-element>externs/goog/dom/classes.js</path-element> + <path-element>externs/goog/dom/classlist.js</path-element> + <path-element>externs/goog/dom/controlrange.js</path-element> + <path-element>externs/goog/dom/dataset.js</path-element> + <path-element>externs/goog/dom/dom.js</path-element> + <path-element>externs/goog/dom/fontsizemonitor.js</path-element> + <path-element>externs/goog/dom/forms.js</path-element> + <path-element>externs/goog/dom/fullscreen.js</path-element> + <path-element>externs/goog/dom/iframe.js</path-element> + <path-element>externs/goog/dom/inputtype.js</path-element> + <path-element>externs/goog/dom/iter.js</path-element> + <path-element>externs/goog/dom/multirange.js</path-element> + <path-element>externs/goog/dom/nodeiterator.js</path-element> + <path-element>externs/goog/dom/nodeoffset.js</path-element> + <path-element>externs/goog/dom/nodetype.js</path-element> + <path-element>externs/goog/dom/range.js</path-element> + <path-element>externs/goog/dom/rangeendpoint.js</path-element> + <path-element>externs/goog/dom/safe.js</path-element> + <path-element>externs/goog/dom/savedcaretrange.js</path-element> + <path-element>externs/goog/dom/savedrange.js</path-element> + <path-element>externs/goog/dom/selection.js</path-element> + <path-element>externs/goog/dom/tagiterator.js</path-element> + <path-element>externs/goog/dom/tagname.js</path-element> + <path-element>externs/goog/dom/tags.js</path-element> + <path-element>externs/goog/dom/textrange.js</path-element> + <path-element>externs/goog/dom/textrangeiterator.js</path-element> + <path-element>externs/goog/dom/vendor.js</path-element> + <path-element>externs/goog/dom/viewportsizemonitor.js</path-element> + <path-element>externs/goog/dom/xml.js</path-element> + <path-element>externs/goog/dom/animationframe/animationframe.js</path-element> + <path-element>externs/goog/dom/animationframe/polyfill.js</path-element> + <path-element>externs/goog/dom/browserrange/abstractrange.js</path-element> + <path-element>externs/goog/dom/browserrange/browserrange.js</path-element> + <path-element>externs/goog/dom/browserrange/geckorange.js</path-element> + <path-element>externs/goog/dom/browserrange/ierange.js</path-element> + <path-element>externs/goog/dom/browserrange/operarange.js</path-element> + <path-element>externs/goog/dom/browserrange/w3crange.js</path-element> + <path-element>externs/goog/dom/browserrange/webkitrange.js</path-element> + <path-element>externs/goog/dom/pattern/abstractpattern.js</path-element> + <path-element>externs/goog/dom/pattern/allchildren.js</path-element> + <path-element>externs/goog/dom/pattern/childmatches.js</path-element> + <path-element>externs/goog/dom/pattern/endtag.js</path-element> + <path-element>externs/goog/dom/pattern/fulltag.js</path-element> + <path-element>externs/goog/dom/pattern/matcher.js</path-element> + <path-element>externs/goog/dom/pattern/nodetype.js</path-element> + <path-element>externs/goog/dom/pattern/pattern.js</path-element> + <path-element>externs/goog/dom/pattern/repeat.js</path-element> + <path-element>externs/goog/dom/pattern/sequence.js</path-element> + <path-element>externs/goog/dom/pattern/starttag.js</path-element> + <path-element>externs/goog/dom/pattern/tag.js</path-element> + <path-element>externs/goog/dom/pattern/text.js</path-element> + <path-element>externs/goog/dom/pattern/callback/callback.js</path-element> + <path-element>externs/goog/dom/pattern/callback/counter.js</path-element> + <path-element>externs/goog/editor/browserfeature.js</path-element> + <path-element>externs/goog/editor/clicktoeditwrapper.js</path-element> + <path-element>externs/goog/editor/command.js</path-element> + <path-element>externs/goog/editor/contenteditablefield.js</path-element> + <path-element>externs/goog/editor/defines.js</path-element> + <path-element>externs/goog/editor/field.js</path-element> + <path-element>externs/goog/editor/focus.js</path-element> + <path-element>externs/goog/editor/icontent.js</path-element> + <path-element>externs/goog/editor/link.js</path-element> + <path-element>externs/goog/editor/node.js</path-element> + <path-element>externs/goog/editor/plugin.js</path-element> + <path-element>externs/goog/editor/range.js</path-element> + <path-element>externs/goog/editor/seamlessfield.js</path-element> + <path-element>externs/goog/editor/style.js</path-element> + <path-element>externs/goog/editor/table.js</path-element> + <path-element>externs/goog/editor/plugins/abstractbubbleplugin.js</path-element> + <path-element>externs/goog/editor/plugins/abstractdialogplugin.js</path-element> + <path-element>externs/goog/editor/plugins/abstracttabhandler.js</path-element> + <path-element>externs/goog/editor/plugins/basictextformatter.js</path-element> + <path-element>externs/goog/editor/plugins/blockquote.js</path-element> + <path-element>externs/goog/editor/plugins/emoticons.js</path-element> + <path-element>externs/goog/editor/plugins/enterhandler.js</path-element> + <path-element>externs/goog/editor/plugins/firststrong.js</path-element> + <path-element>externs/goog/editor/plugins/headerformatter.js</path-element> + <path-element>externs/goog/editor/plugins/linkbubble.js</path-element> + <path-element>externs/goog/editor/plugins/linkdialogplugin.js</path-element> + <path-element>externs/goog/editor/plugins/linkshortcutplugin.js</path-element> + <path-element>externs/goog/editor/plugins/listtabhandler.js</path-element> + <path-element>externs/goog/editor/plugins/loremipsum.js</path-element> + <path-element>externs/goog/editor/plugins/removeformatting.js</path-element> + <path-element>externs/goog/editor/plugins/spacestabhandler.js</path-element> + <path-element>externs/goog/editor/plugins/tableeditor.js</path-element> + <path-element>externs/goog/editor/plugins/tagonenterhandler.js</path-element> + <path-element>externs/goog/editor/plugins/undoredo.js</path-element> + <path-element>externs/goog/editor/plugins/undoredomanager.js</path-element> + <path-element>externs/goog/editor/plugins/undoredostate.js</path-element> + <path-element>externs/goog/events/actioneventwrapper.js</path-element> + <path-element>externs/goog/events/actionhandler.js</path-element>--> + <!--<path-element>externs/goog/events/browserfeature.js</path-element>--> + <!--<path-element>externs/goog/events/eventhandler.js</path-element> + <path-element>externs/goog/events/eventid.js</path-element>--> + <path-element>externs/goog/disposable/disposable.js</path-element> + <path-element>externs/goog/disposable/idisposable.js</path-element> + <path-element>externs/goog/events/browserevent.js</path-element> + <path-element>externs/goog/events/event.js</path-element> + <path-element>externs/goog/events/events.js</path-element> + <path-element>externs/goog/events/eventtarget.js</path-element> + <path-element>externs/goog/events/eventtype.js</path-element> + <path-element>externs/goog/events/listenable.js</path-element> + <!--<path-element>externs/goog/events/eventwrapper.js</path-element> + <path-element>externs/goog/events/filedrophandler.js</path-element> + <path-element>externs/goog/events/focushandler.js</path-element> + <path-element>externs/goog/events/imehandler.js</path-element> + <path-element>externs/goog/events/inputhandler.js</path-element> + <path-element>externs/goog/events/keycodes.js</path-element> + <path-element>externs/goog/events/keyhandler.js</path-element> + <path-element>externs/goog/events/keynames.js</path-element> + <path-element>externs/goog/events/listener.js</path-element> + <path-element>externs/goog/events/listenermap.js</path-element> + <path-element>externs/goog/events/mousewheelhandler.js</path-element> + <path-element>externs/goog/events/onlinehandler.js</path-element> + <path-element>externs/goog/events/pastehandler.js</path-element> + <path-element>externs/goog/events/wheelevent.js</path-element> + <path-element>externs/goog/events/wheelhandler.js</path-element>--> + <!--<path-element>externs/goog/format/emailaddress.js</path-element> + <path-element>externs/goog/format/format.js</path-element> + <path-element>externs/goog/format/htmlprettyprinter.js</path-element> + <path-element>externs/goog/format/internationalizedemailaddress.js</path-element> + <path-element>externs/goog/format/jsonprettyprinter.js</path-element> + <path-element>externs/goog/fs/entry.js</path-element> + <path-element>externs/goog/fs/entryimpl.js</path-element> + <path-element>externs/goog/fs/error.js</path-element> + <path-element>externs/goog/fs/filereader.js</path-element> + <path-element>externs/goog/fs/filesaver.js</path-element> + <path-element>externs/goog/fs/filesystem.js</path-element> + <path-element>externs/goog/fs/filesystemimpl.js</path-element> + <path-element>externs/goog/fs/filewriter.js</path-element> + <path-element>externs/goog/fs/fs.js</path-element> + <path-element>externs/goog/fs/progressevent.js</path-element> + <path-element>externs/goog/fs/url.js</path-element> + <path-element>externs/goog/functions/functions.js</path-element> + <path-element>externs/goog/fx/abstractdragdrop.js</path-element> + <path-element>externs/goog/fx/animation.js</path-element> + <path-element>externs/goog/fx/animationqueue.js</path-element> + <path-element>externs/goog/fx/cssspriteanimation.js</path-element> + <path-element>externs/goog/fx/dom.js</path-element> + <path-element>externs/goog/fx/dragdrop.js</path-element> + <path-element>externs/goog/fx/dragdropgroup.js</path-element> + <path-element>externs/goog/fx/dragger.js</path-element> + <path-element>externs/goog/fx/draglistgroup.js</path-element> + <path-element>externs/goog/fx/dragscrollsupport.js</path-element> + <path-element>externs/goog/fx/easing.js</path-element> + <path-element>externs/goog/fx/fx.js</path-element> + <path-element>externs/goog/fx/transition.js</path-element> + <path-element>externs/goog/fx/transitionbase.js</path-element> + <path-element>externs/goog/fx/anim/anim.js</path-element> + <path-element>externs/goog/fx/css3/fx.js</path-element> + <path-element>externs/goog/fx/css3/transition.js</path-element> + <path-element>externs/goog/graphics/abstractgraphics.js</path-element> + <path-element>externs/goog/graphics/affinetransform.js</path-element> + <path-element>externs/goog/graphics/canvaselement.js</path-element> + <path-element>externs/goog/graphics/canvasgraphics.js</path-element> + <path-element>externs/goog/graphics/element.js</path-element> + <path-element>externs/goog/graphics/ellipseelement.js</path-element> + <path-element>externs/goog/graphics/fill.js</path-element> + <path-element>externs/goog/graphics/font.js</path-element> + <path-element>externs/goog/graphics/graphics.js</path-element> + <path-element>externs/goog/graphics/groupelement.js</path-element> + <path-element>externs/goog/graphics/imageelement.js</path-element> + <path-element>externs/goog/graphics/lineargradient.js</path-element> + <path-element>externs/goog/graphics/path.js</path-element> + <path-element>externs/goog/graphics/pathelement.js</path-element> + <path-element>externs/goog/graphics/paths.js</path-element> + <path-element>externs/goog/graphics/rectelement.js</path-element> + <path-element>externs/goog/graphics/solidfill.js</path-element> + <path-element>externs/goog/graphics/stroke.js</path-element> + <path-element>externs/goog/graphics/strokeandfillelement.js</path-element> + <path-element>externs/goog/graphics/svgelement.js</path-element> + <path-element>externs/goog/graphics/svggraphics.js</path-element> + <path-element>externs/goog/graphics/textelement.js</path-element> + <path-element>externs/goog/graphics/vmlelement.js</path-element> + <path-element>externs/goog/graphics/vmlgraphics.js</path-element> + <path-element>externs/goog/graphics/ext/coordinates.js</path-element> + <path-element>externs/goog/graphics/ext/element.js</path-element> + <path-element>externs/goog/graphics/ext/ellipse.js</path-element> + <path-element>externs/goog/graphics/ext/ext.js</path-element> + <path-element>externs/goog/graphics/ext/graphics.js</path-element> + <path-element>externs/goog/graphics/ext/group.js</path-element> + <path-element>externs/goog/graphics/ext/image.js</path-element> + <path-element>externs/goog/graphics/ext/path.js</path-element> + <path-element>externs/goog/graphics/ext/rectangle.js</path-element> + <path-element>externs/goog/graphics/ext/shape.js</path-element> + <path-element>externs/goog/graphics/ext/strokeandfillelement.js</path-element> + <path-element>externs/goog/history/event.js</path-element> + <path-element>externs/goog/history/eventtype.js</path-element> + <path-element>externs/goog/history/history.js</path-element> + <path-element>externs/goog/history/html5history.js</path-element> + <path-element>externs/goog/html/flash.js</path-element> + <path-element>externs/goog/html/legacyconversions.js</path-element> + <path-element>externs/goog/html/safehtml.js</path-element> + <path-element>externs/goog/html/safescript.js</path-element> + <path-element>externs/goog/html/safestyle.js</path-element> + <path-element>externs/goog/html/safestylesheet.js</path-element> + <path-element>externs/goog/html/safeurl.js</path-element> + <path-element>externs/goog/html/silverlight.js</path-element> + <path-element>externs/goog/html/trustedresourceurl.js</path-element> + <path-element>externs/goog/html/uncheckedconversions.js</path-element> + <path-element>externs/goog/html/utils.js</path-element> + <path-element>externs/goog/i18n/bidi.js</path-element> + <path-element>externs/goog/i18n/bidiformatter.js</path-element> + <path-element>externs/goog/i18n/charlistdecompressor.js</path-element> + <path-element>externs/goog/i18n/charpickerdata.js</path-element> + <path-element>externs/goog/i18n/collation.js</path-element> + <path-element>externs/goog/i18n/compactnumberformatsymbols.js</path-element> + <path-element>externs/goog/i18n/compactnumberformatsymbols_ext.js</path-element> + <path-element>externs/goog/i18n/currency.js</path-element> + <path-element>externs/goog/i18n/currencycodemap.js</path-element> + <path-element>externs/goog/i18n/datetimeformat.js</path-element> + <path-element>externs/goog/i18n/datetimeparse.js</path-element> + <path-element>externs/goog/i18n/datetimepatterns.js</path-element> + <path-element>externs/goog/i18n/datetimepatternsext.js</path-element> + <path-element>externs/goog/i18n/datetimesymbols.js</path-element> + <path-element>externs/goog/i18n/datetimesymbolsext.js</path-element> + <path-element>externs/goog/i18n/graphemebreak.js</path-element> + <path-element>externs/goog/i18n/messageformat.js</path-element> + <path-element>externs/goog/i18n/mime.js</path-element> + <path-element>externs/goog/i18n/numberformat.js</path-element> + <path-element>externs/goog/i18n/numberformatsymbols.js</path-element> + <path-element>externs/goog/i18n/numberformatsymbolsext.js</path-element> + <path-element>externs/goog/i18n/ordinalrules.js</path-element> + <path-element>externs/goog/i18n/pluralrules.js</path-element> + <path-element>externs/goog/i18n/timezone.js</path-element> + <path-element>externs/goog/i18n/uchar.js</path-element> + <path-element>externs/goog/i18n/ucharnames.js</path-element> + <path-element>externs/goog/i18n/uchar/localnamefetcher.js</path-element> + <path-element>externs/goog/i18n/uchar/namefetcher.js</path-element> + <path-element>externs/goog/i18n/uchar/remotenamefetcher.js</path-element> + <path-element>externs/goog/iter/iter.js</path-element> + <path-element>externs/goog/json/evaljsonprocessor.js</path-element> + <path-element>externs/goog/json/hybrid.js</path-element> + <path-element>externs/goog/json/hybridjsonprocessor.js</path-element> + <path-element>externs/goog/json/json.js</path-element> + <path-element>externs/goog/json/json_perf.js</path-element> + <path-element>externs/goog/json/nativejsonprocessor.js</path-element> + <path-element>externs/goog/json/processor.js</path-element> + <path-element>externs/goog/labs/dom/pagevisibilitymonitor.js</path-element> + <path-element>externs/goog/labs/events/nondisposableeventtarget.js</path-element> + <path-element>externs/goog/labs/events/touch.js</path-element> + <path-element>externs/goog/labs/format/csv.js</path-element> + <path-element>externs/goog/labs/html/attribute_rewriter.js</path-element> + <path-element>externs/goog/labs/html/sanitizer.js</path-element> + <path-element>externs/goog/labs/html/scrubber.js</path-element> + <path-element>externs/goog/labs/i18n/listformat.js</path-element> + <path-element>externs/goog/labs/i18n/listsymbols.js</path-element> + <path-element>externs/goog/labs/i18n/listsymbolsext.js</path-element> + <path-element>externs/goog/labs/iterable/iterable.js</path-element> + <path-element>externs/goog/labs/mock/mock.js</path-element> + <path-element>externs/goog/labs/net/image.js</path-element> + <path-element>externs/goog/labs/net/webchannel.js</path-element> + <path-element>externs/goog/labs/net/webchanneltransport.js</path-element> + <path-element>externs/goog/labs/net/webchanneltransportfactory.js</path-element> + <path-element>externs/goog/labs/net/xhr.js</path-element> + <path-element>externs/goog/labs/net/webchannel/channel.js</path-element> + <path-element>externs/goog/labs/net/webchannel/channelrequest.js</path-element> + <path-element>externs/goog/labs/net/webchannel/connectionstate.js</path-element> + <path-element>externs/goog/labs/net/webchannel/forwardchannelrequestpool.js</path-element> + <path-element>externs/goog/labs/net/webchannel/netutils.js</path-element> + <path-element>externs/goog/labs/net/webchannel/requeststats.js</path-element> + <path-element>externs/goog/labs/net/webchannel/webchannelbase.js</path-element> + <path-element>externs/goog/labs/net/webchannel/webchannelbasetransport.js</path-element> + <path-element>externs/goog/labs/net/webchannel/webchanneldebug.js</path-element> + <path-element>externs/goog/labs/net/webchannel/wire.js</path-element> + <path-element>externs/goog/labs/net/webchannel/wirev8.js</path-element> + <path-element>externs/goog/labs/object/object.js</path-element> + <path-element>externs/goog/labs/pubsub/broadcastpubsub.js</path-element> + <path-element>externs/goog/labs/storage/boundedcollectablestorage.js</path-element> + <path-element>externs/goog/labs/structs/map.js</path-element> + <path-element>externs/goog/labs/structs/map_perf.js</path-element> + <path-element>externs/goog/labs/structs/multimap.js</path-element> + <path-element>externs/goog/labs/style/pixeldensitymonitor.js</path-element> + <path-element>externs/goog/labs/testing/assertthat.js</path-element> + <path-element>externs/goog/labs/testing/decoratormatcher.js</path-element> + <path-element>externs/goog/labs/testing/dictionarymatcher.js</path-element> + <path-element>externs/goog/labs/testing/environment.js</path-element> + <path-element>externs/goog/labs/testing/logicmatcher.js</path-element> + <path-element>externs/goog/labs/testing/matcher.js</path-element> + <path-element>externs/goog/labs/testing/numbermatcher.js</path-element> + <path-element>externs/goog/labs/testing/objectmatcher.js</path-element> + <path-element>externs/goog/labs/testing/stringmatcher.js</path-element> + <path-element>externs/goog/labs/useragent/browser.js</path-element> + <path-element>externs/goog/labs/useragent/device.js</path-element> + <path-element>externs/goog/labs/useragent/engine.js</path-element> + <path-element>externs/goog/labs/useragent/platform.js</path-element> + <path-element>externs/goog/labs/useragent/util.js</path-element> + <path-element>externs/goog/locale/countries.js</path-element> + <path-element>externs/goog/locale/defaultlocalenameconstants.js</path-element> + <path-element>externs/goog/locale/genericfontnames.js</path-element> + <path-element>externs/goog/locale/genericfontnamesdata.js</path-element> + <path-element>externs/goog/locale/locale.js</path-element> + <path-element>externs/goog/locale/nativenameconstants.js</path-element> + <path-element>externs/goog/locale/scriptToLanguages.js</path-element> + <path-element>externs/goog/locale/timezonedetection.js</path-element> + <path-element>externs/goog/locale/timezonefingerprint.js</path-element> + <path-element>externs/goog/locale/timezonelist.js</path-element> + <path-element>externs/goog/log/log.js</path-element> + <path-element>externs/goog/math/affinetransform.js</path-element> + <path-element>externs/goog/math/bezier.js</path-element> + <path-element>externs/goog/math/box.js</path-element> + <path-element>externs/goog/math/coordinate.js</path-element> + <path-element>externs/goog/math/coordinate3.js</path-element> + <path-element>externs/goog/math/exponentialbackoff.js</path-element> + <path-element>externs/goog/math/integer.js</path-element> + <path-element>externs/goog/math/line.js</path-element> + <path-element>externs/goog/math/long.js</path-element> + <path-element>externs/goog/math/math.js</path-element> + <path-element>externs/goog/math/matrix.js</path-element> + <path-element>externs/goog/math/path.js</path-element> + <path-element>externs/goog/math/paths.js</path-element> + <path-element>externs/goog/math/range.js</path-element> + <path-element>externs/goog/math/rangeset.js</path-element> + <path-element>externs/goog/math/rect.js</path-element> + <path-element>externs/goog/math/size.js</path-element> + <path-element>externs/goog/math/tdma.js</path-element> + <path-element>externs/goog/math/vec2.js</path-element> + <path-element>externs/goog/math/vec3.js</path-element> + <path-element>externs/goog/math/interpolator/interpolator1.js</path-element> + <path-element>externs/goog/math/interpolator/linear1.js</path-element> + <path-element>externs/goog/math/interpolator/pchip1.js</path-element> + <path-element>externs/goog/math/interpolator/spline1.js</path-element> + <path-element>externs/goog/memoize/memoize.js</path-element> + <path-element>externs/goog/messaging/abstractchannel.js</path-element> + <path-element>externs/goog/messaging/bufferedchannel.js</path-element> + <path-element>externs/goog/messaging/deferredchannel.js</path-element> + <path-element>externs/goog/messaging/loggerclient.js</path-element> + <path-element>externs/goog/messaging/loggerserver.js</path-element> + <path-element>externs/goog/messaging/messagechannel.js</path-element> + <path-element>externs/goog/messaging/messaging.js</path-element> + <path-element>externs/goog/messaging/multichannel.js</path-element> + <path-element>externs/goog/messaging/portcaller.js</path-element> + <path-element>externs/goog/messaging/portchannel.js</path-element> + <path-element>externs/goog/messaging/portnetwork.js</path-element> + <path-element>externs/goog/messaging/portoperator.js</path-element> + <path-element>externs/goog/messaging/respondingchannel.js</path-element> + <path-element>externs/goog/messaging/testdata/portchannel_worker.js</path-element> + <path-element>externs/goog/messaging/testdata/portnetwork_worker1.js</path-element> + <path-element>externs/goog/messaging/testdata/portnetwork_worker2.js</path-element> + <path-element>externs/goog/module/abstractmoduleloader.js</path-element> + <path-element>externs/goog/module/basemodule.js</path-element> + <path-element>externs/goog/module/loader.js</path-element> + <path-element>externs/goog/module/module.js</path-element> + <path-element>externs/goog/module/moduleinfo.js</path-element> + <path-element>externs/goog/module/moduleloadcallback.js</path-element> + <path-element>externs/goog/module/moduleloader.js</path-element> + <path-element>externs/goog/module/modulemanager.js</path-element> + <path-element>externs/goog/module/testdata/modA_1.js</path-element> + <path-element>externs/goog/module/testdata/modA_2.js</path-element> + <path-element>externs/goog/module/testdata/modB_1.js</path-element> + <path-element>externs/goog/net/browserchannel.js</path-element> + <path-element>externs/goog/net/bulkloader.js</path-element> + <path-element>externs/goog/net/bulkloaderhelper.js</path-element> + <path-element>externs/goog/net/channeldebug.js</path-element> + <path-element>externs/goog/net/channelrequest.js</path-element> + <path-element>externs/goog/net/cookies.js</path-element> + <path-element>externs/goog/net/corsxmlhttpfactory.js</path-element> + <path-element>externs/goog/net/crossdomainrpc.js</path-element> + <path-element>externs/goog/net/errorcode.js</path-element> + <path-element>externs/goog/net/eventtype.js</path-element> + <path-element>externs/goog/net/filedownloader.js</path-element> + <path-element>externs/goog/net/httpstatus.js</path-element> + <path-element>externs/goog/net/iframeio.js</path-element> + <path-element>externs/goog/net/iframeloadmonitor.js</path-element> + <path-element>externs/goog/net/imageloader.js</path-element> + <path-element>externs/goog/net/ipaddress.js</path-element> + <path-element>externs/goog/net/jsloader.js</path-element> + <path-element>externs/goog/net/jsonp.js</path-element> + <path-element>externs/goog/net/mockiframeio.js</path-element> + <path-element>externs/goog/net/multiiframeloadmonitor.js</path-element> + <path-element>externs/goog/net/networkstatusmonitor.js</path-element> + <path-element>externs/goog/net/tmpnetwork.js</path-element> + <path-element>externs/goog/net/websocket.js</path-element> + <path-element>externs/goog/net/wrapperxmlhttpfactory.js</path-element> + <path-element>externs/goog/net/xhrio.js</path-element> + <path-element>externs/goog/net/xhriopool.js</path-element> + <path-element>externs/goog/net/xhrlike.js</path-element> + <path-element>externs/goog/net/xhrmanager.js</path-element> + <path-element>externs/goog/net/xmlhttp.js</path-element> + <path-element>externs/goog/net/xmlhttpfactory.js</path-element> + <path-element>externs/goog/net/xpc/crosspagechannel.js</path-element> + <path-element>externs/goog/net/xpc/crosspagechannelrole.js</path-element> + <path-element>externs/goog/net/xpc/directtransport.js</path-element> + <path-element>externs/goog/net/xpc/frameelementmethodtransport.js</path-element> + <path-element>externs/goog/net/xpc/iframepollingtransport.js</path-element> + <path-element>externs/goog/net/xpc/iframerelaytransport.js</path-element> + <path-element>externs/goog/net/xpc/nativemessagingtransport.js</path-element> + <path-element>externs/goog/net/xpc/nixtransport.js</path-element> + <path-element>externs/goog/net/xpc/relay.js</path-element> + <path-element>externs/goog/net/xpc/transport.js</path-element> + <path-element>externs/goog/net/xpc/xpc.js</path-element> + <path-element>externs/goog/object/object.js</path-element> + <path-element>externs/goog/positioning/absoluteposition.js</path-element> + <path-element>externs/goog/positioning/abstractposition.js</path-element> + <path-element>externs/goog/positioning/anchoredposition.js</path-element> + <path-element>externs/goog/positioning/anchoredviewportposition.js</path-element> + <path-element>externs/goog/positioning/clientposition.js</path-element> + <path-element>externs/goog/positioning/menuanchoredposition.js</path-element> + <path-element>externs/goog/positioning/positioning.js</path-element> + <path-element>externs/goog/positioning/viewportclientposition.js</path-element> + <path-element>externs/goog/positioning/viewportposition.js</path-element> + <path-element>externs/goog/promise/promise.js</path-element> + <path-element>externs/goog/promise/resolver.js</path-element> + <path-element>externs/goog/promise/thenable.js</path-element> + <path-element>externs/goog/proto/proto.js</path-element> + <path-element>externs/goog/proto/serializer.js</path-element> + <path-element>externs/goog/proto2/descriptor.js</path-element> + <path-element>externs/goog/proto2/fielddescriptor.js</path-element> + <path-element>externs/goog/proto2/lazydeserializer.js</path-element> + <path-element>externs/goog/proto2/message.js</path-element> + <path-element>externs/goog/proto2/objectserializer.js</path-element> + <path-element>externs/goog/proto2/pbliteserializer.js</path-element> + <path-element>externs/goog/proto2/serializer.js</path-element> + <path-element>externs/goog/proto2/textformatserializer.js</path-element> + <path-element>externs/goog/proto2/util.js</path-element> + <path-element>externs/goog/pubsub/pubsub.js</path-element> + <path-element>externs/goog/pubsub/topicid.js</path-element> + <path-element>externs/goog/pubsub/typedpubsub.js</path-element> + <path-element>externs/goog/reflect/reflect.js</path-element> + <path-element>externs/goog/result/deferredadaptor.js</path-element> + <path-element>externs/goog/result/dependentresult.js</path-element> + <path-element>externs/goog/result/resultutil.js</path-element> + <path-element>externs/goog/result/result_interface.js</path-element> + <path-element>externs/goog/result/simpleresult.js</path-element> + <path-element>externs/goog/soy/data.js</path-element> + <path-element>externs/goog/soy/renderer.js</path-element> + <path-element>externs/goog/soy/soy.js</path-element> + <path-element>externs/goog/spell/spellcheck.js</path-element> + <path-element>externs/goog/stats/basicstat.js</path-element> + <path-element>externs/goog/storage/collectablestorage.js</path-element> + <path-element>externs/goog/storage/encryptedstorage.js</path-element> + <path-element>externs/goog/storage/errorcode.js</path-element> + <path-element>externs/goog/storage/expiringstorage.js</path-element> + <path-element>externs/goog/storage/richstorage.js</path-element> + <path-element>externs/goog/storage/storage.js</path-element> + <path-element>externs/goog/storage/mechanism/errorcode.js</path-element> + <path-element>externs/goog/storage/mechanism/errorhandlingmechanism.js</path-element> + <path-element>externs/goog/storage/mechanism/html5localstorage.js</path-element> + <path-element>externs/goog/storage/mechanism/html5sessionstorage.js</path-element> + <path-element>externs/goog/storage/mechanism/html5webstorage.js</path-element> + <path-element>externs/goog/storage/mechanism/ieuserdata.js</path-element> + <path-element>externs/goog/storage/mechanism/iterablemechanism.js</path-element> + <path-element>externs/goog/storage/mechanism/mechanism.js</path-element> + <path-element>externs/goog/storage/mechanism/mechanismfactory.js</path-element> + <path-element>externs/goog/storage/mechanism/prefixedmechanism.js</path-element> + <path-element>externs/goog/string/const.js</path-element> + <path-element>externs/goog/string/linkify.js</path-element> + <path-element>externs/goog/string/newlines.js</path-element> + <path-element>externs/goog/string/parser.js</path-element> + <path-element>externs/goog/string/path.js</path-element> + <path-element>externs/goog/string/string.js</path-element> + <path-element>externs/goog/string/stringbuffer.js</path-element> + <path-element>externs/goog/string/stringformat.js</path-element> + <path-element>externs/goog/string/stringifier.js</path-element> + <path-element>externs/goog/string/typedstring.js</path-element> + <path-element>externs/goog/structs/avltree.js</path-element> + <path-element>externs/goog/structs/circularbuffer.js</path-element> + <path-element>externs/goog/structs/collection.js</path-element> + <path-element>externs/goog/structs/heap.js</path-element> + <path-element>externs/goog/structs/inversionmap.js</path-element> + <path-element>externs/goog/structs/linkedmap.js</path-element> + <path-element>externs/goog/structs/map.js</path-element> + <path-element>externs/goog/structs/node.js</path-element> + <path-element>externs/goog/structs/pool.js</path-element> + <path-element>externs/goog/structs/prioritypool.js</path-element> + <path-element>externs/goog/structs/priorityqueue.js</path-element> + <path-element>externs/goog/structs/quadtree.js</path-element> + <path-element>externs/goog/structs/queue.js</path-element> + <path-element>externs/goog/structs/set.js</path-element> + <path-element>externs/goog/structs/simplepool.js</path-element> + <path-element>externs/goog/structs/stringset.js</path-element> + <path-element>externs/goog/structs/structs.js</path-element> + <path-element>externs/goog/structs/treenode.js</path-element> + <path-element>externs/goog/structs/trie.js</path-element> + <path-element>externs/goog/structs/weak/weak.js</path-element> + <path-element>externs/goog/style/bidi.js</path-element> + <path-element>externs/goog/style/cursor.js</path-element> + <path-element>externs/goog/style/style.js</path-element> + <path-element>externs/goog/style/transform.js</path-element> + <path-element>externs/goog/style/transition.js</path-element> + <path-element>externs/goog/testing/asserts.js</path-element> + <path-element>externs/goog/testing/benchmark.js</path-element> + <path-element>externs/goog/testing/dom.js</path-element> + <path-element>externs/goog/testing/expectedfailures.js</path-element> + <path-element>externs/goog/testing/functionmock.js</path-element> + <path-element>externs/goog/testing/graphics.js</path-element> + <path-element>externs/goog/testing/jsunit.js</path-element> + <path-element>externs/goog/testing/loosemock.js</path-element> + <path-element>externs/goog/testing/mock.js</path-element> + <path-element>externs/goog/testing/mockclassfactory.js</path-element> + <path-element>externs/goog/testing/mockclock.js</path-element> + <path-element>externs/goog/testing/mockcontrol.js</path-element> + <path-element>externs/goog/testing/mockinterface.js</path-element> + <path-element>externs/goog/testing/mockmatchers.js</path-element> + <path-element>externs/goog/testing/mockrandom.js</path-element> + <path-element>externs/goog/testing/mockrange.js</path-element> + <path-element>externs/goog/testing/mockstorage.js</path-element> + <path-element>externs/goog/testing/mockuseragent.js</path-element> + <path-element>externs/goog/testing/objectpropertystring.js</path-element> + <path-element>externs/goog/testing/performancetable.js</path-element> + <path-element>externs/goog/testing/performancetimer.js</path-element> + <path-element>externs/goog/testing/propertyreplacer.js</path-element> + <path-element>externs/goog/testing/pseudorandom.js</path-element> + <path-element>externs/goog/testing/recordfunction.js</path-element> + <path-element>externs/goog/testing/singleton.js</path-element> + <path-element>externs/goog/testing/stacktrace.js</path-element> + <path-element>externs/goog/testing/strictmock.js</path-element> + <path-element>externs/goog/testing/watchers.js</path-element> + <path-element>externs/goog/testing/async/mockcontrol.js</path-element> + <path-element>externs/goog/testing/editor/dom.js</path-element> + <path-element>externs/goog/testing/editor/fieldmock.js</path-element> + <path-element>externs/goog/testing/events/eventobserver.js</path-element> + <path-element>externs/goog/testing/events/events.js</path-element> + <path-element>externs/goog/testing/events/matchers.js</path-element> + <path-element>externs/goog/testing/events/onlinehandler.js</path-element> + <path-element>externs/goog/testing/fs/blob.js</path-element> + <path-element>externs/goog/testing/fs/entry.js</path-element> + <path-element>externs/goog/testing/fs/file.js</path-element> + <path-element>externs/goog/testing/fs/filereader.js</path-element> + <path-element>externs/goog/testing/fs/filesystem.js</path-element> + <path-element>externs/goog/testing/fs/filewriter.js</path-element> + <path-element>externs/goog/testing/fs/fs.js</path-element> + <path-element>externs/goog/testing/fs/progressevent.js</path-element> + <path-element>externs/goog/testing/i18n/asserts.js</path-element> + <path-element>externs/goog/testing/messaging/mockmessagechannel.js</path-element> + <path-element>externs/goog/testing/messaging/mockmessageevent.js</path-element> + <path-element>externs/goog/testing/messaging/mockmessageport.js</path-element> + <path-element>externs/goog/testing/messaging/mockportnetwork.js</path-element> + <path-element>externs/goog/testing/net/xhrio.js</path-element> + <path-element>externs/goog/testing/net/xhriopool.js</path-element> + <path-element>externs/goog/testing/proto2/proto2.js</path-element> + <path-element>externs/goog/testing/storage/fakemechanism.js</path-element> + <path-element>externs/goog/testing/style/layoutasserts.js</path-element> + <path-element>externs/goog/testing/style/style.js</path-element> + <path-element>externs/goog/testing/ui/rendererasserts.js</path-element> + <path-element>externs/goog/testing/ui/rendererharness.js</path-element> + <path-element>externs/goog/testing/ui/style.js</path-element> + <path-element>externs/goog/timer/timer.js</path-element> + <path-element>externs/goog/tweak/entries.js</path-element> + <path-element>externs/goog/tweak/registry.js</path-element> + <path-element>externs/goog/tweak/tweak.js</path-element> + <path-element>externs/goog/tweak/tweakui.js</path-element> + <path-element>externs/goog/ui/abstractspellchecker.js</path-element> + <path-element>externs/goog/ui/activitymonitor.js</path-element> + <path-element>externs/goog/ui/advancedtooltip.js</path-element> + <path-element>externs/goog/ui/animatedzippy.js</path-element> + <path-element>externs/goog/ui/attachablemenu.js</path-element> + <path-element>externs/goog/ui/bidiinput.js</path-element> + <path-element>externs/goog/ui/bubble.js</path-element> + <path-element>externs/goog/ui/button.js</path-element> + <path-element>externs/goog/ui/buttonrenderer.js</path-element> + <path-element>externs/goog/ui/buttonside.js</path-element> + <path-element>externs/goog/ui/charcounter.js</path-element> + <path-element>externs/goog/ui/charpicker.js</path-element> + <path-element>externs/goog/ui/checkbox.js</path-element> + <path-element>externs/goog/ui/checkboxmenuitem.js</path-element> + <path-element>externs/goog/ui/checkboxrenderer.js</path-element> + <path-element>externs/goog/ui/colorbutton.js</path-element> + <path-element>externs/goog/ui/colorbuttonrenderer.js</path-element> + <path-element>externs/goog/ui/colormenubutton.js</path-element> + <path-element>externs/goog/ui/colormenubuttonrenderer.js</path-element> + <path-element>externs/goog/ui/colorpalette.js</path-element> + <path-element>externs/goog/ui/colorpicker.js</path-element> + <path-element>externs/goog/ui/colorsplitbehavior.js</path-element> + <path-element>externs/goog/ui/combobox.js</path-element> + <path-element>externs/goog/ui/component.js</path-element> + <path-element>externs/goog/ui/container.js</path-element> + <path-element>externs/goog/ui/containerrenderer.js</path-element> + <path-element>externs/goog/ui/containerscroller.js</path-element> + <path-element>externs/goog/ui/control.js</path-element> + <path-element>externs/goog/ui/controlcontent.js</path-element> + <path-element>externs/goog/ui/controlrenderer.js</path-element> + <path-element>externs/goog/ui/cookieeditor.js</path-element> + <path-element>externs/goog/ui/css3buttonrenderer.js</path-element> + <path-element>externs/goog/ui/css3menubuttonrenderer.js</path-element> + <path-element>externs/goog/ui/cssnames.js</path-element> + <path-element>externs/goog/ui/custombutton.js</path-element> + <path-element>externs/goog/ui/custombuttonrenderer.js</path-element> + <path-element>externs/goog/ui/customcolorpalette.js</path-element> + <path-element>externs/goog/ui/datepicker.js</path-element> + <path-element>externs/goog/ui/datepickerrenderer.js</path-element> + <path-element>externs/goog/ui/decorate.js</path-element> + <path-element>externs/goog/ui/defaultdatepickerrenderer.js</path-element> + <path-element>externs/goog/ui/dialog.js</path-element> + <path-element>externs/goog/ui/dimensionpicker.js</path-element> + <path-element>externs/goog/ui/dimensionpickerrenderer.js</path-element> + <path-element>externs/goog/ui/dragdropdetector.js</path-element> + <path-element>externs/goog/ui/drilldownrow.js</path-element> + <path-element>externs/goog/ui/filteredmenu.js</path-element> + <path-element>externs/goog/ui/filterobservingmenuitem.js</path-element> + <path-element>externs/goog/ui/filterobservingmenuitemrenderer.js</path-element> + <path-element>externs/goog/ui/flatbuttonrenderer.js</path-element> + <path-element>externs/goog/ui/flatmenubuttonrenderer.js</path-element> + <path-element>externs/goog/ui/formpost.js</path-element> + <path-element>externs/goog/ui/gauge.js</path-element> + <path-element>externs/goog/ui/gaugetheme.js</path-element> + <path-element>externs/goog/ui/hovercard.js</path-element> + <path-element>externs/goog/ui/hsvapalette.js</path-element> + <path-element>externs/goog/ui/hsvpalette.js</path-element> + <path-element>externs/goog/ui/idgenerator.js</path-element> + <path-element>externs/goog/ui/idletimer.js</path-element> + <path-element>externs/goog/ui/iframemask.js</path-element> + <path-element>externs/goog/ui/imagelessbuttonrenderer.js</path-element> + <path-element>externs/goog/ui/imagelessmenubuttonrenderer.js</path-element> + <path-element>externs/goog/ui/inputdatepicker.js</path-element> + <path-element>externs/goog/ui/itemevent.js</path-element> + <path-element>externs/goog/ui/keyboardshortcuthandler.js</path-element> + <path-element>externs/goog/ui/labelinput.js</path-element> + <path-element>externs/goog/ui/linkbuttonrenderer.js</path-element> + <path-element>externs/goog/ui/menu.js</path-element> + <path-element>externs/goog/ui/menubar.js</path-element> + <path-element>externs/goog/ui/menubardecorator.js</path-element> + <path-element>externs/goog/ui/menubarrenderer.js</path-element> + <path-element>externs/goog/ui/menubase.js</path-element> + <path-element>externs/goog/ui/menubutton.js</path-element> + <path-element>externs/goog/ui/menubuttonrenderer.js</path-element> + <path-element>externs/goog/ui/menuheader.js</path-element> + <path-element>externs/goog/ui/menuheaderrenderer.js</path-element> + <path-element>externs/goog/ui/menuitem.js</path-element> + <path-element>externs/goog/ui/menuitemrenderer.js</path-element> + <path-element>externs/goog/ui/menurenderer.js</path-element> + <path-element>externs/goog/ui/menuseparator.js</path-element> + <path-element>externs/goog/ui/menuseparatorrenderer.js</path-element> + <path-element>externs/goog/ui/mockactivitymonitor.js</path-element> + <path-element>externs/goog/ui/modalariavisibilityhelper.js</path-element> + <path-element>externs/goog/ui/modalpopup.js</path-element> + <path-element>externs/goog/ui/nativebuttonrenderer.js</path-element> + <path-element>externs/goog/ui/option.js</path-element> + <path-element>externs/goog/ui/palette.js</path-element> + <path-element>externs/goog/ui/paletterenderer.js</path-element> + <path-element>externs/goog/ui/plaintextspellchecker.js</path-element> + <path-element>externs/goog/ui/popup.js</path-element> + <path-element>externs/goog/ui/popupbase.js</path-element> + <path-element>externs/goog/ui/popupcolorpicker.js</path-element> + <path-element>externs/goog/ui/popupdatepicker.js</path-element> + <path-element>externs/goog/ui/popupmenu.js</path-element> + <path-element>externs/goog/ui/progressbar.js</path-element> + <path-element>externs/goog/ui/prompt.js</path-element> + <path-element>externs/goog/ui/rangemodel.js</path-element> + <path-element>externs/goog/ui/ratings.js</path-element> + <path-element>externs/goog/ui/registry.js</path-element> + <path-element>externs/goog/ui/richtextspellchecker.js</path-element> + <path-element>externs/goog/ui/roundedpanel.js</path-element> + <path-element>externs/goog/ui/roundedtabrenderer.js</path-element> + <path-element>externs/goog/ui/scrollfloater.js</path-element> + <path-element>externs/goog/ui/select.js</path-element> + <path-element>externs/goog/ui/selectionmenubutton.js</path-element> + <path-element>externs/goog/ui/selectionmodel.js</path-element> + <path-element>externs/goog/ui/separator.js</path-element> + <path-element>externs/goog/ui/serverchart.js</path-element> + <path-element>externs/goog/ui/slider.js</path-element> + <path-element>externs/goog/ui/sliderbase.js</path-element> + <path-element>externs/goog/ui/splitbehavior.js</path-element> + <path-element>externs/goog/ui/splitpane.js</path-element> + <path-element>externs/goog/ui/submenu.js</path-element> + <path-element>externs/goog/ui/submenurenderer.js</path-element> + <path-element>externs/goog/ui/tab.js</path-element> + <path-element>externs/goog/ui/tabbar.js</path-element> + <path-element>externs/goog/ui/tabbarrenderer.js</path-element> + <path-element>externs/goog/ui/tablesorter.js</path-element> + <path-element>externs/goog/ui/tabpane.js</path-element> + <path-element>externs/goog/ui/tabrenderer.js</path-element> + <path-element>externs/goog/ui/textarea.js</path-element> + <path-element>externs/goog/ui/textarearenderer.js</path-element> + <path-element>externs/goog/ui/togglebutton.js</path-element> + <path-element>externs/goog/ui/toolbar.js</path-element> + <path-element>externs/goog/ui/toolbarbutton.js</path-element> + <path-element>externs/goog/ui/toolbarbuttonrenderer.js</path-element> + <path-element>externs/goog/ui/toolbarcolormenubutton.js</path-element> + <path-element>externs/goog/ui/toolbarcolormenubuttonrenderer.js</path-element> + <path-element>externs/goog/ui/toolbarmenubutton.js</path-element> + <path-element>externs/goog/ui/toolbarmenubuttonrenderer.js</path-element> + <path-element>externs/goog/ui/toolbarrenderer.js</path-element> + <path-element>externs/goog/ui/toolbarselect.js</path-element> + <path-element>externs/goog/ui/toolbarseparator.js</path-element> + <path-element>externs/goog/ui/toolbarseparatorrenderer.js</path-element> + <path-element>externs/goog/ui/toolbartogglebutton.js</path-element> + <path-element>externs/goog/ui/tooltip.js</path-element> + <path-element>externs/goog/ui/tristatemenuitem.js</path-element> + <path-element>externs/goog/ui/tristatemenuitemrenderer.js</path-element> + <path-element>externs/goog/ui/twothumbslider.js</path-element> + <path-element>externs/goog/ui/zippy.js</path-element> + <path-element>externs/goog/ui/ac/ac.js</path-element> + <path-element>externs/goog/ui/ac/arraymatcher.js</path-element> + <path-element>externs/goog/ui/ac/autocomplete.js</path-element> + <path-element>externs/goog/ui/ac/cachingmatcher.js</path-element> + <path-element>externs/goog/ui/ac/inputhandler.js</path-element> + <path-element>externs/goog/ui/ac/remote.js</path-element> + <path-element>externs/goog/ui/ac/remotearraymatcher.js</path-element> + <path-element>externs/goog/ui/ac/renderer.js</path-element> + <path-element>externs/goog/ui/ac/renderoptions.js</path-element> + <path-element>externs/goog/ui/ac/richinputhandler.js</path-element> + <path-element>externs/goog/ui/ac/richremote.js</path-element> + <path-element>externs/goog/ui/ac/richremotearraymatcher.js</path-element> + <path-element>externs/goog/ui/editor/abstractdialog.js</path-element> + <path-element>externs/goog/ui/editor/bubble.js</path-element> + <path-element>externs/goog/ui/editor/defaulttoolbar.js</path-element> + <path-element>externs/goog/ui/editor/linkdialog.js</path-element> + <path-element>externs/goog/ui/editor/messages.js</path-element> + <path-element>externs/goog/ui/editor/tabpane.js</path-element> + <path-element>externs/goog/ui/editor/toolbarcontroller.js</path-element> + <path-element>externs/goog/ui/editor/toolbarfactory.js</path-element> + <path-element>externs/goog/ui/emoji/emoji.js</path-element> + <path-element>externs/goog/ui/emoji/emojipalette.js</path-element> + <path-element>externs/goog/ui/emoji/emojipaletterenderer.js</path-element> + <path-element>externs/goog/ui/emoji/emojipicker.js</path-element> + <path-element>externs/goog/ui/emoji/popupemojipicker.js</path-element> + <path-element>externs/goog/ui/emoji/progressiveemojipaletterenderer.js</path-element> + <path-element>externs/goog/ui/emoji/spriteinfo.js</path-element> + <path-element>externs/goog/ui/media/flashobject.js</path-element> + <path-element>externs/goog/ui/media/flickr.js</path-element> + <path-element>externs/goog/ui/media/googlevideo.js</path-element> + <path-element>externs/goog/ui/media/media.js</path-element> + <path-element>externs/goog/ui/media/mediamodel.js</path-element> + <path-element>externs/goog/ui/media/mp3.js</path-element> + <path-element>externs/goog/ui/media/photo.js</path-element> + <path-element>externs/goog/ui/media/picasa.js</path-element> + <path-element>externs/goog/ui/media/vimeo.js</path-element> + <path-element>externs/goog/ui/media/youtube.js</path-element> + <path-element>externs/goog/ui/style/app/buttonrenderer.js</path-element> + <path-element>externs/goog/ui/style/app/menubuttonrenderer.js</path-element> + <path-element>externs/goog/ui/style/app/primaryactionbuttonrenderer.js</path-element> + <path-element>externs/goog/ui/tree/basenode.js</path-element> + <path-element>externs/goog/ui/tree/treecontrol.js</path-element> + <path-element>externs/goog/ui/tree/treenode.js</path-element> + <path-element>externs/goog/ui/tree/typeahead.js</path-element> + <path-element>externs/goog/uri/uri.js</path-element> + <path-element>externs/goog/uri/utils.js</path-element> + <path-element>externs/goog/useragent/adobereader.js</path-element> + <path-element>externs/goog/useragent/flash.js</path-element> + <path-element>externs/goog/useragent/iphoto.js</path-element> + <path-element>externs/goog/useragent/jscript.js</path-element> + <path-element>externs/goog/useragent/keyboard.js</path-element> + <path-element>externs/goog/useragent/platform.js</path-element> + <path-element>externs/goog/useragent/product.js</path-element> + <path-element>externs/goog/useragent/product_isversion.js</path-element> + <path-element>externs/goog/useragent/useragent.js</path-element> + <path-element>externs/goog/vec/float32array.js</path-element> + <path-element>externs/goog/vec/float64array.js</path-element> + <path-element>externs/goog/vec/mat3.js</path-element> + <path-element>externs/goog/vec/mat3d.js</path-element> + <path-element>externs/goog/vec/mat3f.js</path-element> + <path-element>externs/goog/vec/mat4.js</path-element> + <path-element>externs/goog/vec/mat4d.js</path-element> + <path-element>externs/goog/vec/mat4f.js</path-element> + <path-element>externs/goog/vec/matrix3.js</path-element> + <path-element>externs/goog/vec/matrix4.js</path-element> + <path-element>externs/goog/vec/quaternion.js</path-element> + <path-element>externs/goog/vec/ray.js</path-element> + <path-element>externs/goog/vec/vec.js</path-element> + <path-element>externs/goog/vec/vec2.js</path-element> + <path-element>externs/goog/vec/vec2d.js</path-element> + <path-element>externs/goog/vec/vec2f.js</path-element> + <path-element>externs/goog/vec/vec3.js</path-element> + <path-element>externs/goog/vec/vec3d.js</path-element> + <path-element>externs/goog/vec/vec3f.js</path-element> + <path-element>externs/goog/vec/vec4.js</path-element> + <path-element>externs/goog/vec/vec4d.js</path-element> + <path-element>externs/goog/vec/vec4f.js</path-element> + <path-element>externs/goog/webgl/webgl.js</path-element> + <path-element>externs/goog/window/window.js</path-element>--> + </external> + +</flex-config>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e2cad6e6/externs/GCL/compile-config.xml ---------------------------------------------------------------------- diff --git a/externs/GCL/compile-config.xml b/externs/GCL/compile-config.xml new file mode 100644 index 0000000..e8b8911 --- /dev/null +++ b/externs/GCL/compile-config.xml @@ -0,0 +1,99 @@ +<!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +--> +<flex-config> + + <compiler> + + <accessible>true</accessible> + + <!-- + <external-library-path> + <path-element>${env.PLAYERGLOBAL_HOME}/${playerglobal.version}/playerglobal.swc</path-element> + <path-element>../../libs/framework.swc</path-element> + <path-element>../../libs/mx/mx.swc</path-element> + <path-element>../../libs/osmf.swc</path-element> + <path-element>../../libs/textLayout.swc</path-element> + </external-library-path> + + <keep-as3-metadata> + <name>SkinPart</name> + </keep-as3-metadata> + + <mxml> + <minimum-supported-version>4.0.0</minimum-supported-version> + </mxml> + + <locale/> + + <library-path/> + + <namespaces> + <namespace> + <uri>library://ns.adobe.com/flex/spark</uri> + <manifest>manifest.xml</manifest> + </namespace> + </namespaces> + --> + + <source-path> + <path-element>src</path-element> + <!--<path-element>out/as/classes</path-element> + <path-element>out/as/interfaces</path-element> + <path-element>out/as/constants</path-element> + <path-element>out/as/functions</path-element> + <path-element>out/as/interfaces</path-element> + <path-element>out/as/typedefs</path-element>--> + </source-path> + + <warn-no-constructor>false</warn-no-constructor> + </compiler> + + <include-sources> + <path-element>src</path-element> + <!--<path-element>out/as/classes</path-element> + <path-element>out/as/interfaces</path-element> + <path-element>out/as/constants</path-element> + <path-element>out/as/functions</path-element> + <path-element>out/as/interfaces</path-element> + <path-element>out/as/typedefs</path-element>--> + </include-sources> + + <!-- + <include-file> + <name>defaults.css</name> + <path>defaults.css</path> + </include-file> + <include-file> + <name>assets/ErrorIndicator.png</name> + <path>assets/ErrorIndicator.png</path> + </include-file> + <include-file> + <name>assets/RequiredIndicator.png</name> + <path>assets/RequiredIndicator.png</path> + </include-file> + + <include-namespaces> + <uri>library://ns.adobe.com/flex/spark</uri> + </include-namespaces> + + <resource-bundle-list>bundles.properties</resource-bundle-list> + + <target-player>${playerglobal.version}</target-player> + --> +</flex-config> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e2cad6e6/externs/GCL/externs/goog/a11y/aria/announcer.js ---------------------------------------------------------------------- diff --git a/externs/GCL/externs/goog/a11y/aria/announcer.js b/externs/GCL/externs/goog/a11y/aria/announcer.js new file mode 100644 index 0000000..6818264 --- /dev/null +++ b/externs/GCL/externs/goog/a11y/aria/announcer.js @@ -0,0 +1,123 @@ +// Copyright 2007 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview Announcer that allows messages to be spoken by assistive + * technologies. + */ + +goog.provide('goog.a11y.aria.Announcer'); + +goog.require('goog.Disposable'); +goog.require('goog.Timer'); +goog.require('goog.a11y.aria'); +goog.require('goog.a11y.aria.LivePriority'); +goog.require('goog.a11y.aria.State'); +goog.require('goog.dom'); +goog.require('goog.dom.TagName'); +goog.require('goog.object'); + + + +/** + * Class that allows messages to be spoken by assistive technologies that the + * user may have active. + * + * @param {goog.dom.DomHelper=} opt_domHelper DOM helper. + * @constructor + * @extends {goog.Disposable} + * @final + */ +goog.a11y.aria.Announcer = function(opt_domHelper) { + goog.a11y.aria.Announcer.base(this, 'constructor'); + + /** + * @type {goog.dom.DomHelper} + * @private + */ + this.domHelper_ = opt_domHelper || goog.dom.getDomHelper(); + + /** + * Map of priority to live region elements to use for communicating updates. + * Elements are created on demand. + * @type {Object<goog.a11y.aria.LivePriority, !Element>} + * @private + */ + this.liveRegions_ = {}; +}; +goog.inherits(goog.a11y.aria.Announcer, goog.Disposable); + + +/** @override */ +goog.a11y.aria.Announcer.prototype.disposeInternal = function() { + goog.object.forEach( + this.liveRegions_, this.domHelper_.removeNode, this.domHelper_); + this.liveRegions_ = null; + this.domHelper_ = null; + goog.a11y.aria.Announcer.base(this, 'disposeInternal'); +}; + + +/** + * Announce a message to be read by any assistive technologies the user may + * have active. + * @param {string} message The message to announce to screen readers. + * @param {goog.a11y.aria.LivePriority=} opt_priority The priority of the + * message. Defaults to POLITE. + */ +goog.a11y.aria.Announcer.prototype.say = function(message, opt_priority) { + var priority = opt_priority || goog.a11y.aria.LivePriority.POLITE; + var liveRegion = this.getLiveRegion_(priority); + // Resets text content to force a DOM mutation (so that the setTextContent + // post-timeout function will be noticed by the screen reader). This is to + // avoid the problem of when the same message is "said" twice, which doesn't + // trigger a DOM mutation. + goog.dom.setTextContent(liveRegion, ''); + // Uses non-zero timer to make VoiceOver and NVDA work + goog.Timer.callOnce(function() { + goog.dom.setTextContent(liveRegion, message); + }, 1); +}; + + +/** + * Returns an aria-live region that can be used to communicate announcements. + * @param {!goog.a11y.aria.LivePriority} priority The required priority. + * @return {!Element} A live region of the requested priority. + * @private + */ +goog.a11y.aria.Announcer.prototype.getLiveRegion_ = function(priority) { + var liveRegion = this.liveRegions_[priority]; + if (liveRegion) { + // Make sure the live region is not aria-hidden. + goog.a11y.aria.removeState(liveRegion, goog.a11y.aria.State.HIDDEN); + return liveRegion; + } + + liveRegion = this.domHelper_.createElement(goog.dom.TagName.DIV); + // Note that IE has a habit of declaring things that aren't display:none as + // invisible to third-party tools like JAWs, so we can't just use height:0. + liveRegion.style.position = 'absolute'; + liveRegion.style.top = '-1000px'; + liveRegion.style.height = '1px'; + liveRegion.style.overflow = 'hidden'; + goog.a11y.aria.setState(liveRegion, goog.a11y.aria.State.LIVE, + priority); + goog.a11y.aria.setState(liveRegion, goog.a11y.aria.State.ATOMIC, + 'true'); + this.domHelper_.getDocument().body.appendChild(liveRegion); + this.liveRegions_[priority] = liveRegion; + return liveRegion; +}; http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e2cad6e6/externs/GCL/externs/goog/a11y/aria/aria.js ---------------------------------------------------------------------- diff --git a/externs/GCL/externs/goog/a11y/aria/aria.js b/externs/GCL/externs/goog/a11y/aria/aria.js new file mode 100644 index 0000000..1220d23 --- /dev/null +++ b/externs/GCL/externs/goog/a11y/aria/aria.js @@ -0,0 +1,386 @@ +// Copyright 2007 The Closure Library Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS-IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview Utilities for adding, removing and setting ARIA roles and + * states as defined by W3C ARIA standard: http://www.w3.org/TR/wai-aria/ + * All modern browsers have some form of ARIA support, so no browser checks are + * performed when adding ARIA to components. + * + */ + +goog.provide('goog.a11y.aria'); + +goog.require('goog.a11y.aria.Role'); +goog.require('goog.a11y.aria.State'); +goog.require('goog.a11y.aria.datatables'); +goog.require('goog.array'); +goog.require('goog.asserts'); +goog.require('goog.dom'); +goog.require('goog.dom.TagName'); +goog.require('goog.object'); +goog.require('goog.string'); + + +/** + * ARIA states/properties prefix. + * @private + */ +goog.a11y.aria.ARIA_PREFIX_ = 'aria-'; + + +/** + * ARIA role attribute. + * @private + */ +goog.a11y.aria.ROLE_ATTRIBUTE_ = 'role'; + + +/** + * A list of tag names for which we don't need to set ARIA role and states + * because they have well supported semantics for screen readers or because + * they don't contain content to be made accessible. + * @private + */ +goog.a11y.aria.TAGS_WITH_ASSUMED_ROLES_ = [ + goog.dom.TagName.A, + goog.dom.TagName.AREA, + goog.dom.TagName.BUTTON, + goog.dom.TagName.HEAD, + goog.dom.TagName.INPUT, + goog.dom.TagName.LINK, + goog.dom.TagName.MENU, + goog.dom.TagName.META, + goog.dom.TagName.OPTGROUP, + goog.dom.TagName.OPTION, + goog.dom.TagName.PROGRESS, + goog.dom.TagName.STYLE, + goog.dom.TagName.SELECT, + goog.dom.TagName.SOURCE, + goog.dom.TagName.TEXTAREA, + goog.dom.TagName.TITLE, + goog.dom.TagName.TRACK +]; + + +/** + * Sets the role of an element. If the roleName is + * empty string or null, the role for the element is removed. + * We encourage clients to call the goog.a11y.aria.removeRole + * method instead of setting null and empty string values. + * Special handling for this case is added to ensure + * backword compatibility with existing code. + * + * @param {!Element} element DOM node to set role of. + * @param {!goog.a11y.aria.Role|string} roleName role name(s). + */ +goog.a11y.aria.setRole = function(element, roleName) { + if (!roleName) { + // Setting the ARIA role to empty string is not allowed + // by the ARIA standard. + goog.a11y.aria.removeRole(element); + } else { + if (goog.asserts.ENABLE_ASSERTS) { + goog.asserts.assert(goog.object.containsValue( + goog.a11y.aria.Role, roleName), 'No such ARIA role ' + roleName); + } + element.setAttribute(goog.a11y.aria.ROLE_ATTRIBUTE_, roleName); + } +}; + + +/** + * Gets role of an element. + * @param {!Element} element DOM element to get role of. + * @return {goog.a11y.aria.Role} ARIA Role name. + */ +goog.a11y.aria.getRole = function(element) { + var role = element.getAttribute(goog.a11y.aria.ROLE_ATTRIBUTE_); + return /** @type {goog.a11y.aria.Role} */ (role) || null; +}; + + +/** + * Removes role of an element. + * @param {!Element} element DOM element to remove the role from. + */ +goog.a11y.aria.removeRole = function(element) { + element.removeAttribute(goog.a11y.aria.ROLE_ATTRIBUTE_); +}; + + +/** + * Sets the state or property of an element. + * @param {!Element} element DOM node where we set state. + * @param {!(goog.a11y.aria.State|string)} stateName State attribute being set. + * Automatically adds prefix 'aria-' to the state name if the attribute is + * not an extra attribute. + * @param {string|boolean|number|!Array<string>} value Value + * for the state attribute. + */ +goog.a11y.aria.setState = function(element, stateName, value) { + if (goog.isArray(value)) { + value = value.join(' '); + } + var attrStateName = goog.a11y.aria.getAriaAttributeName_(stateName); + if (value === '' || value == undefined) { + var defaultValueMap = goog.a11y.aria.datatables.getDefaultValuesMap(); + // Work around for browsers that don't properly support ARIA. + // According to the ARIA W3C standard, user agents should allow + // setting empty value which results in setting the default value + // for the ARIA state if such exists. The exact text from the ARIA W3C + // standard (http://www.w3.org/TR/wai-aria/states_and_properties): + // "When a value is indicated as the default, the user agent + // MUST follow the behavior prescribed by this value when the state or + // property is empty or undefined." + // The defaultValueMap contains the default values for the ARIA states + // and has as a key the goog.a11y.aria.State constant for the state. + if (stateName in defaultValueMap) { + element.setAttribute(attrStateName, defaultValueMap[stateName]); + } else { + element.removeAttribute(attrStateName); + } + } else { + element.setAttribute(attrStateName, value); + } +}; + + +/** + * Toggles the ARIA attribute of an element. + * Meant for attributes with a true/false value, but works with any attribute. + * If the attribute does not have a true/false value, the following rules apply: + * A not empty attribute will be removed. + * An empty attribute will be set to true. + * @param {!Element} el DOM node for which to set attribute. + * @param {!(goog.a11y.aria.State|string)} attr ARIA attribute being set. + * Automatically adds prefix 'aria-' to the attribute name if the attribute + * is not an extra attribute. + */ +goog.a11y.aria.toggleState = function(el, attr) { + var val = goog.a11y.aria.getState(el, attr); + if (!goog.string.isEmptyOrWhitespace(goog.string.makeSafe(val)) && + !(val == 'true' || val == 'false')) { + goog.a11y.aria.removeState(el, /** @type {!goog.a11y.aria.State} */ (attr)); + return; + } + goog.a11y.aria.setState(el, attr, val == 'true' ? 'false' : 'true'); +}; + + +/** + * Remove the state or property for the element. + * @param {!Element} element DOM node where we set state. + * @param {!goog.a11y.aria.State} stateName State name. + */ +goog.a11y.aria.removeState = function(element, stateName) { + element.removeAttribute(goog.a11y.aria.getAriaAttributeName_(stateName)); +}; + + +/** + * Gets value of specified state or property. + * @param {!Element} element DOM node to get state from. + * @param {!goog.a11y.aria.State|string} stateName State name. + * @return {string} Value of the state attribute. + */ +goog.a11y.aria.getState = function(element, stateName) { + // TODO(user): return properly typed value result -- + // boolean, number, string, null. We should be able to chain + // getState(...) and setState(...) methods. + + var attr = + /** @type {string|number|boolean} */ (element.getAttribute( + goog.a11y.aria.getAriaAttributeName_(stateName))); + var isNullOrUndefined = attr == null || attr == undefined; + return isNullOrUndefined ? '' : String(attr); +}; + + +/** + * Returns the activedescendant element for the input element by + * using the activedescendant ARIA property of the given element. + * @param {!Element} element DOM node to get activedescendant + * element for. + * @return {?Element} DOM node of the activedescendant, if found. + */ +goog.a11y.aria.getActiveDescendant = function(element) { + var id = goog.a11y.aria.getState( + element, goog.a11y.aria.State.ACTIVEDESCENDANT); + return goog.dom.getOwnerDocument(element).getElementById(id); +}; + + +/** + * Sets the activedescendant ARIA property value for an element. + * If the activeElement is not null, it should have an id set. + * @param {!Element} element DOM node to set activedescendant ARIA property to. + * @param {?Element} activeElement DOM node being set as activedescendant. + */ +goog.a11y.aria.setActiveDescendant = function(element, activeElement) { + var id = ''; + if (activeElement) { + id = activeElement.id; + goog.asserts.assert(id, 'The active element should have an id.'); + } + + goog.a11y.aria.setState(element, goog.a11y.aria.State.ACTIVEDESCENDANT, id); +}; + + +/** + * Gets the label of the given element. + * @param {!Element} element DOM node to get label from. + * @return {string} label The label. + */ +goog.a11y.aria.getLabel = function(element) { + return goog.a11y.aria.getState(element, goog.a11y.aria.State.LABEL); +}; + + +/** + * Sets the label of the given element. + * @param {!Element} element DOM node to set label to. + * @param {string} label The label to set. + */ +goog.a11y.aria.setLabel = function(element, label) { + goog.a11y.aria.setState(element, goog.a11y.aria.State.LABEL, label); +}; + + +/** + * Asserts that the element has a role set if it's not an HTML element whose + * semantics is well supported by most screen readers. + * Only to be used internally by the ARIA library in goog.a11y.aria.*. + * @param {!Element} element The element to assert an ARIA role set. + * @param {!goog.array.ArrayLike<string>} allowedRoles The child roles of + * the roles. + */ +goog.a11y.aria.assertRoleIsSetInternalUtil = function(element, allowedRoles) { + if (goog.array.contains(goog.a11y.aria.TAGS_WITH_ASSUMED_ROLES_, + element.tagName)) { + return; + } + var elementRole = /** @type {string}*/ (goog.a11y.aria.getRole(element)); + goog.asserts.assert(elementRole != null, + 'The element ARIA role cannot be null.'); + + goog.asserts.assert(goog.array.contains(allowedRoles, elementRole), + 'Non existing or incorrect role set for element.' + + 'The role set is "' + elementRole + + '". The role should be any of "' + allowedRoles + + '". Check the ARIA specification for more details ' + + 'http://www.w3.org/TR/wai-aria/roles.'); +}; + + +/** + * Gets the boolean value of an ARIA state/property. + * @param {!Element} element The element to get the ARIA state for. + * @param {!goog.a11y.aria.State|string} stateName the ARIA state name. + * @return {?boolean} Boolean value for the ARIA state value or null if + * the state value is not 'true', not 'false', or not set. + */ +goog.a11y.aria.getStateBoolean = function(element, stateName) { + var attr = + /** @type {string|boolean} */ (element.getAttribute( + goog.a11y.aria.getAriaAttributeName_(stateName))); + goog.asserts.assert( + goog.isBoolean(attr) || attr == null || attr == 'true' || + attr == 'false'); + if (attr == null) { + return attr; + } + return goog.isBoolean(attr) ? attr : attr == 'true'; +}; + + +/** + * Gets the number value of an ARIA state/property. + * @param {!Element} element The element to get the ARIA state for. + * @param {!goog.a11y.aria.State|string} stateName the ARIA state name. + * @return {?number} Number value for the ARIA state value or null if + * the state value is not a number or not set. + */ +goog.a11y.aria.getStateNumber = function(element, stateName) { + var attr = + /** @type {string|number} */ (element.getAttribute( + goog.a11y.aria.getAriaAttributeName_(stateName))); + goog.asserts.assert((attr == null || !isNaN(Number(attr))) && + !goog.isBoolean(attr)); + return attr == null ? null : Number(attr); +}; + + +/** + * Gets the string value of an ARIA state/property. + * @param {!Element} element The element to get the ARIA state for. + * @param {!goog.a11y.aria.State|string} stateName the ARIA state name. + * @return {?string} String value for the ARIA state value or null if + * the state value is empty string or not set. + */ +goog.a11y.aria.getStateString = function(element, stateName) { + var attr = element.getAttribute( + goog.a11y.aria.getAriaAttributeName_(stateName)); + goog.asserts.assert((attr == null || goog.isString(attr)) && + isNaN(Number(attr)) && attr != 'true' && attr != 'false'); + return attr == null ? null : attr; +}; + + +/** + * Gets array of strings value of the specified state or + * property for the element. + * Only to be used internally by the ARIA library in goog.a11y.aria.*. + * @param {!Element} element DOM node to get state from. + * @param {!goog.a11y.aria.State} stateName State name. + * @return {!goog.array.ArrayLike<string>} string Array + * value of the state attribute. + */ +goog.a11y.aria.getStringArrayStateInternalUtil = function(element, stateName) { + var attrValue = element.getAttribute( + goog.a11y.aria.getAriaAttributeName_(stateName)); + return goog.a11y.aria.splitStringOnWhitespace_(attrValue); +}; + + +/** + * Splits the input stringValue on whitespace. + * @param {string} stringValue The value of the string to split. + * @return {!goog.array.ArrayLike<string>} string Array + * value as result of the split. + * @private + */ +goog.a11y.aria.splitStringOnWhitespace_ = function(stringValue) { + return stringValue ? stringValue.split(/\s+/) : []; +}; + + +/** + * Adds the 'aria-' prefix to ariaName. + * @param {string} ariaName ARIA state/property name. + * @private + * @return {string} The ARIA attribute name with added 'aria-' prefix. + * @throws {Error} If no such attribute exists. + */ +goog.a11y.aria.getAriaAttributeName_ = function(ariaName) { + if (goog.asserts.ENABLE_ASSERTS) { + goog.asserts.assert(ariaName, 'ARIA attribute cannot be empty.'); + goog.asserts.assert(goog.object.containsValue( + goog.a11y.aria.State, ariaName), + 'No such ARIA attribute ' + ariaName); + } + return goog.a11y.aria.ARIA_PREFIX_ + ariaName; +};
