closure 1.1.692
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 +6 -0
- data/.yardopts +3 -0
- data/LICENSE +202 -0
- data/README.md +26 -0
- data/beanshell/LICENSE +12 -0
- data/beanshell/bsh-core-2.0b4.jar +0 -0
- data/closure-compiler/COPYING +202 -0
- data/closure-compiler/README +278 -0
- data/closure-compiler/compiler.jar +0 -0
- data/closure-library/AUTHORS +12 -0
- data/closure-library/LICENSE +176 -0
- data/closure-library/README +6 -0
- data/closure-library/all_tests.html +113 -0
- data/closure-library/alltests.js +16 -0
- data/closure-library/closure/bin/build/closurebuilder.py +257 -0
- data/closure-library/closure/bin/build/depstree.py +186 -0
- data/closure-library/closure/bin/build/depstree_test.py +127 -0
- data/closure-library/closure/bin/build/depswriter.py +197 -0
- data/closure-library/closure/bin/build/jscompiler.py +69 -0
- data/closure-library/closure/bin/build/source.py +86 -0
- data/closure-library/closure/bin/build/source_test.py +57 -0
- data/closure-library/closure/bin/build/treescan.py +78 -0
- data/closure-library/closure/bin/calcdeps.py +570 -0
- data/closure-library/closure/bin/scopify.py +211 -0
- data/closure-library/closure/css/inlay/g-base.css +82 -0
- data/closure-library/closure/css/inlay/g-fixed.css +158 -0
- data/closure-library/closure/css/inlay/g-ratio.css +253 -0
- data/closure-library/closure/goog/array/array.js +1300 -0
- data/closure-library/closure/goog/array/array_test.html +1524 -0
- data/closure-library/closure/goog/asserts/asserts.js +277 -0
- data/closure-library/closure/goog/asserts/asserts_test.html +163 -0
- data/closure-library/closure/goog/async/conditionaldelay.js +238 -0
- data/closure-library/closure/goog/async/conditionaldelay_test.html +227 -0
- data/closure-library/closure/goog/async/delay.js +174 -0
- data/closure-library/closure/goog/async/delay_test.html +148 -0
- data/closure-library/closure/goog/async/throttle.js +189 -0
- data/closure-library/closure/goog/async/throttle_test.html +102 -0
- data/closure-library/closure/goog/base.js +1471 -0
- data/closure-library/closure/goog/base_test.html +1166 -0
- data/closure-library/closure/goog/bootstrap/webworkers.js +37 -0
- data/closure-library/closure/goog/color/alpha.js +436 -0
- data/closure-library/closure/goog/color/alpha_test.html +234 -0
- data/closure-library/closure/goog/color/color.js +757 -0
- data/closure-library/closure/goog/color/color_test.html +645 -0
- data/closure-library/closure/goog/color/names.js +176 -0
- data/closure-library/closure/goog/crypt/arc4.js +141 -0
- data/closure-library/closure/goog/crypt/arc4_test.html +42 -0
- data/closure-library/closure/goog/crypt/base64.js +267 -0
- data/closure-library/closure/goog/crypt/base64_test.html +106 -0
- data/closure-library/closure/goog/crypt/basen.js +242 -0
- data/closure-library/closure/goog/crypt/basen_test.html +167 -0
- data/closure-library/closure/goog/crypt/crypt.js +103 -0
- data/closure-library/closure/goog/crypt/crypt_test.html +68 -0
- data/closure-library/closure/goog/crypt/hash32.js +184 -0
- data/closure-library/closure/goog/crypt/hash32_test.html +287 -0
- data/closure-library/closure/goog/crypt/sha1.js +238 -0
- data/closure-library/closure/goog/crypt/sha1_test.html +47 -0
- data/closure-library/closure/goog/css/autocomplete.css +43 -0
- data/closure-library/closure/goog/css/bubble.css +84 -0
- data/closure-library/closure/goog/css/button.css +38 -0
- data/closure-library/closure/goog/css/charpicker.css +201 -0
- data/closure-library/closure/goog/css/checkbox.css +38 -0
- data/closure-library/closure/goog/css/colormenubutton.css +25 -0
- data/closure-library/closure/goog/css/colorpalette.css +54 -0
- data/closure-library/closure/goog/css/colorpicker-simplegrid.css +50 -0
- data/closure-library/closure/goog/css/combobox.css +57 -0
- data/closure-library/closure/goog/css/common.css +41 -0
- data/closure-library/closure/goog/css/css3button.css +77 -0
- data/closure-library/closure/goog/css/css3menubutton.css +23 -0
- data/closure-library/closure/goog/css/custombutton.css +164 -0
- data/closure-library/closure/goog/css/datepicker.css +148 -0
- data/closure-library/closure/goog/css/dialog.css +72 -0
- data/closure-library/closure/goog/css/dimensionpicker.css +47 -0
- data/closure-library/closure/goog/css/dragdropdetector.css +48 -0
- data/closure-library/closure/goog/css/editor/bubble.css +73 -0
- data/closure-library/closure/goog/css/editor/dialog.css +66 -0
- data/closure-library/closure/goog/css/editor/linkdialog.css +36 -0
- data/closure-library/closure/goog/css/editortoolbar.css +225 -0
- data/closure-library/closure/goog/css/filteredmenu.css +30 -0
- data/closure-library/closure/goog/css/filterobservingmenuitem.css +25 -0
- data/closure-library/closure/goog/css/flatbutton.css +65 -0
- data/closure-library/closure/goog/css/flatmenubutton.css +63 -0
- data/closure-library/closure/goog/css/hovercard.css +51 -0
- data/closure-library/closure/goog/css/hsvapalette.css +231 -0
- data/closure-library/closure/goog/css/hsvpalette.css +179 -0
- data/closure-library/closure/goog/css/imagelessbutton.css +160 -0
- data/closure-library/closure/goog/css/imagelessmenubutton.css +23 -0
- data/closure-library/closure/goog/css/inputdatepicker.css +12 -0
- data/closure-library/closure/goog/css/linkbutton.css +26 -0
- data/closure-library/closure/goog/css/menu.css +27 -0
- data/closure-library/closure/goog/css/menubutton.css +169 -0
- data/closure-library/closure/goog/css/menuitem.css +96 -0
- data/closure-library/closure/goog/css/menuseparator.css +19 -0
- data/closure-library/closure/goog/css/multitestrunner.css +121 -0
- data/closure-library/closure/goog/css/offline.css +147 -0
- data/closure-library/closure/goog/css/palette.css +36 -0
- data/closure-library/closure/goog/css/popupdatepicker.css +17 -0
- data/closure-library/closure/goog/css/roundedpanel.css +29 -0
- data/closure-library/closure/goog/css/roundedtab.css +158 -0
- data/closure-library/closure/goog/css/submenu.css +28 -0
- data/closure-library/closure/goog/css/tab.css +91 -0
- data/closure-library/closure/goog/css/tabbar.css +52 -0
- data/closure-library/closure/goog/css/tablesorter.css +14 -0
- data/closure-library/closure/goog/css/toolbar.css +400 -0
- data/closure-library/closure/goog/css/tooltip.css +14 -0
- data/closure-library/closure/goog/css/tree.css +147 -0
- data/closure-library/closure/goog/css/tristatemenuitem.css +43 -0
- data/closure-library/closure/goog/cssom/cssom.js +447 -0
- data/closure-library/closure/goog/cssom/cssom_test.html +343 -0
- data/closure-library/closure/goog/cssom/cssom_test_import_1.css +11 -0
- data/closure-library/closure/goog/cssom/cssom_test_import_2.css +10 -0
- data/closure-library/closure/goog/cssom/cssom_test_link_1.css +10 -0
- data/closure-library/closure/goog/cssom/iframe/style.js +1020 -0
- data/closure-library/closure/goog/cssom/iframe/style_test.html +391 -0
- data/closure-library/closure/goog/cssom/iframe/style_test_import.css +10 -0
- data/closure-library/closure/goog/datasource/datamanager.js +566 -0
- data/closure-library/closure/goog/datasource/datasource.js +646 -0
- data/closure-library/closure/goog/datasource/datasource_test.html +265 -0
- data/closure-library/closure/goog/datasource/expr.js +544 -0
- data/closure-library/closure/goog/datasource/expr_test.html +97 -0
- data/closure-library/closure/goog/datasource/fastdatanode.js +792 -0
- data/closure-library/closure/goog/datasource/fastdatanode_test.html +254 -0
- data/closure-library/closure/goog/datasource/jsdatasource.js +460 -0
- data/closure-library/closure/goog/datasource/jsondatasource.js +146 -0
- data/closure-library/closure/goog/datasource/jsxmlhttpdatasource.js +191 -0
- data/closure-library/closure/goog/datasource/jsxmlhttpdatasource_test.html +94 -0
- data/closure-library/closure/goog/datasource/xmldatasource.js +407 -0
- data/closure-library/closure/goog/date/date.js +1642 -0
- data/closure-library/closure/goog/date/date_test.html +1293 -0
- data/closure-library/closure/goog/date/datelike.js +27 -0
- data/closure-library/closure/goog/date/daterange.js +398 -0
- data/closure-library/closure/goog/date/daterange_test.html +213 -0
- data/closure-library/closure/goog/date/relative.js +425 -0
- data/closure-library/closure/goog/date/relative_test.html +124 -0
- data/closure-library/closure/goog/date/utcdatetime.js +178 -0
- data/closure-library/closure/goog/date/utcdatetime_test.html +119 -0
- data/closure-library/closure/goog/debug/console.js +138 -0
- data/closure-library/closure/goog/debug/debug.js +452 -0
- data/closure-library/closure/goog/debug/debug_test.html +32 -0
- data/closure-library/closure/goog/debug/debugwindow.js +582 -0
- data/closure-library/closure/goog/debug/devcss/devcss.js +435 -0
- data/closure-library/closure/goog/debug/devcss/devcss_test.html +365 -0
- data/closure-library/closure/goog/debug/devcss/devcssrunner.js +26 -0
- data/closure-library/closure/goog/debug/divconsole.js +141 -0
- data/closure-library/closure/goog/debug/enhanceerror_test.html +138 -0
- data/closure-library/closure/goog/debug/entrypointregistry.js +111 -0
- data/closure-library/closure/goog/debug/entrypointregistry_test.html +63 -0
- data/closure-library/closure/goog/debug/error.js +47 -0
- data/closure-library/closure/goog/debug/error_test.html +85 -0
- data/closure-library/closure/goog/debug/errorhandler.js +234 -0
- data/closure-library/closure/goog/debug/errorhandler_async_test.html +112 -0
- data/closure-library/closure/goog/debug/errorhandler_test.html +186 -0
- data/closure-library/closure/goog/debug/errorhandlerweakdep.js +38 -0
- data/closure-library/closure/goog/debug/errorreporter.js +324 -0
- data/closure-library/closure/goog/debug/errorreporter_test.html +289 -0
- data/closure-library/closure/goog/debug/fancywindow.js +265 -0
- data/closure-library/closure/goog/debug/formatter.js +314 -0
- data/closure-library/closure/goog/debug/gcdiagnostics.js +143 -0
- data/closure-library/closure/goog/debug/logbuffer.js +147 -0
- data/closure-library/closure/goog/debug/logbuffer_test.html +105 -0
- data/closure-library/closure/goog/debug/logger.js +809 -0
- data/closure-library/closure/goog/debug/logger_test.html +208 -0
- data/closure-library/closure/goog/debug/logrecord.js +271 -0
- data/closure-library/closure/goog/debug/reflect.js +159 -0
- data/closure-library/closure/goog/debug/reflect_test.html +81 -0
- data/closure-library/closure/goog/debug/relativetimeprovider.js +83 -0
- data/closure-library/closure/goog/debug/tracer.js +750 -0
- data/closure-library/closure/goog/debug/tracer_test.html +57 -0
- data/closure-library/closure/goog/demos/advancedtooltip.html +78 -0
- data/closure-library/closure/goog/demos/animationqueue.html +149 -0
- data/closure-library/closure/goog/demos/autocomplete-basic.html +56 -0
- data/closure-library/closure/goog/demos/autocompleteremote.html +40 -0
- data/closure-library/closure/goog/demos/autocompleteremotedata.js +18 -0
- data/closure-library/closure/goog/demos/autocompleterichremote.html +137 -0
- data/closure-library/closure/goog/demos/autocompleterichremotedata.js +33 -0
- data/closure-library/closure/goog/demos/bidiinput.html +72 -0
- data/closure-library/closure/goog/demos/bubble.html +250 -0
- data/closure-library/closure/goog/demos/button.html +395 -0
- data/closure-library/closure/goog/demos/charcounter.html +57 -0
- data/closure-library/closure/goog/demos/charpicker.html +64 -0
- data/closure-library/closure/goog/demos/checkbox.html +122 -0
- data/closure-library/closure/goog/demos/color-contrast.html +60 -0
- data/closure-library/closure/goog/demos/colormenubutton.html +213 -0
- data/closure-library/closure/goog/demos/colorpicker.html +43 -0
- data/closure-library/closure/goog/demos/combobox.html +125 -0
- data/closure-library/closure/goog/demos/container.html +670 -0
- data/closure-library/closure/goog/demos/control.html +477 -0
- data/closure-library/closure/goog/demos/css/demo.css +75 -0
- data/closure-library/closure/goog/demos/css/emojipicker.css +36 -0
- data/closure-library/closure/goog/demos/css/emojisprite.css +92 -0
- data/closure-library/closure/goog/demos/css3button.html +166 -0
- data/closure-library/closure/goog/demos/css3menubutton.html +285 -0
- data/closure-library/closure/goog/demos/cssspriteanimation.html +80 -0
- data/closure-library/closure/goog/demos/datepicker.html +183 -0
- data/closure-library/closure/goog/demos/debug.html +119 -0
- data/closure-library/closure/goog/demos/depsgraph.html +221 -0
- data/closure-library/closure/goog/demos/dialog.html +156 -0
- data/closure-library/closure/goog/demos/dimensionpicker.html +108 -0
- data/closure-library/closure/goog/demos/dimensionpicker_rtl.html +123 -0
- data/closure-library/closure/goog/demos/dom_selection.html +88 -0
- data/closure-library/closure/goog/demos/drag.html +191 -0
- data/closure-library/closure/goog/demos/dragdrop.html +263 -0
- data/closure-library/closure/goog/demos/dragdropdetector.html +46 -0
- data/closure-library/closure/goog/demos/dragdropdetector_target.html +17 -0
- data/closure-library/closure/goog/demos/dragger.html +83 -0
- data/closure-library/closure/goog/demos/draglistgroup.html +261 -0
- data/closure-library/closure/goog/demos/drilldownrow.html +78 -0
- data/closure-library/closure/goog/demos/editor/deps.js +20 -0
- data/closure-library/closure/goog/demos/editor/editor.html +139 -0
- data/closure-library/closure/goog/demos/editor/field_basic.html +74 -0
- data/closure-library/closure/goog/demos/editor/helloworld.html +91 -0
- data/closure-library/closure/goog/demos/editor/helloworld.js +81 -0
- data/closure-library/closure/goog/demos/editor/helloworld_test.html +75 -0
- data/closure-library/closure/goog/demos/editor/helloworlddialog.js +163 -0
- data/closure-library/closure/goog/demos/editor/helloworlddialog_test.html +100 -0
- data/closure-library/closure/goog/demos/editor/helloworlddialogplugin.js +110 -0
- data/closure-library/closure/goog/demos/editor/helloworlddialogplugin_test.html +198 -0
- data/closure-library/closure/goog/demos/editor/seamlessfield.html +106 -0
- data/closure-library/closure/goog/demos/effects.html +142 -0
- data/closure-library/closure/goog/demos/emoji/200.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/201.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/202.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/203.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/204.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/205.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/206.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2BC.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2BD.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2BE.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2BF.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2C0.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2C1.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2C2.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2C3.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2C4.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2C5.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2C6.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2C7.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2C8.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2C9.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2CA.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2CB.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2CC.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2CD.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2CE.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2CF.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2D0.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2D1.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2D2.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2D3.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2D4.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2D5.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2D6.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2D7.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2D8.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2D9.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2DA.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2DB.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2DC.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2DD.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2DE.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2DF.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2E0.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2E1.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2E2.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2E3.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2E4.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2E5.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2E6.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2E7.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2E8.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2E9.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2EA.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2EB.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2EC.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2ED.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2EE.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2EF.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2F0.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2F1.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2F2.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2F3.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2F4.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2F5.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2F6.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2F7.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2F8.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2F9.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2FA.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2FB.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2FC.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2FD.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2FE.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/2FF.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/none.gif +0 -0
- data/closure-library/closure/goog/demos/emoji/sprite.png +0 -0
- data/closure-library/closure/goog/demos/emoji/sprite2.png +0 -0
- data/closure-library/closure/goog/demos/emoji/unknown.gif +0 -0
- data/closure-library/closure/goog/demos/event-propagation.html +192 -0
- data/closure-library/closure/goog/demos/events.html +99 -0
- data/closure-library/closure/goog/demos/eventtarget.html +70 -0
- data/closure-library/closure/goog/demos/filedrophandler.html +63 -0
- data/closure-library/closure/goog/demos/filteredmenu.html +118 -0
- data/closure-library/closure/goog/demos/focushandler.html +58 -0
- data/closure-library/closure/goog/demos/gauge.html +158 -0
- data/closure-library/closure/goog/demos/graphics/advancedcoordinates.html +141 -0
- data/closure-library/closure/goog/demos/graphics/advancedcoordinates2.html +130 -0
- data/closure-library/closure/goog/demos/graphics/basicelements.html +264 -0
- data/closure-library/closure/goog/demos/graphics/events.html +113 -0
- data/closure-library/closure/goog/demos/graphics/modifyelements.html +195 -0
- data/closure-library/closure/goog/demos/graphics/subpixel.html +80 -0
- data/closure-library/closure/goog/demos/graphics/tiger.html +105 -0
- data/closure-library/closure/goog/demos/graphics/tigerdata.js +2840 -0
- data/closure-library/closure/goog/demos/history1.html +132 -0
- data/closure-library/closure/goog/demos/history2.html +100 -0
- data/closure-library/closure/goog/demos/history3.html +106 -0
- data/closure-library/closure/goog/demos/history3js.html +36 -0
- data/closure-library/closure/goog/demos/history_blank.html +25 -0
- data/closure-library/closure/goog/demos/hovercard.html +177 -0
- data/closure-library/closure/goog/demos/hsvapalette.html +55 -0
- data/closure-library/closure/goog/demos/hsvpalette.html +56 -0
- data/closure-library/closure/goog/demos/html5history.html +87 -0
- data/closure-library/closure/goog/demos/imagelessbutton.html +221 -0
- data/closure-library/closure/goog/demos/imagelessmenubutton.html +285 -0
- data/closure-library/closure/goog/demos/imagelessroundedcorner.html +231 -0
- data/closure-library/closure/goog/demos/index.html +19 -0
- data/closure-library/closure/goog/demos/index_nav.html +253 -0
- data/closure-library/closure/goog/demos/index_splash.html +22 -0
- data/closure-library/closure/goog/demos/inline_block_quirks.html +125 -0
- data/closure-library/closure/goog/demos/inline_block_standards.html +126 -0
- data/closure-library/closure/goog/demos/inputdatepicker.html +60 -0
- data/closure-library/closure/goog/demos/inputhandler.html +72 -0
- data/closure-library/closure/goog/demos/jsonprettyprinter.html +80 -0
- data/closure-library/closure/goog/demos/keyboardshortcuts.html +112 -0
- data/closure-library/closure/goog/demos/keyhandler.html +127 -0
- data/closure-library/closure/goog/demos/labelinput.html +42 -0
- data/closure-library/closure/goog/demos/menu.html +220 -0
- data/closure-library/closure/goog/demos/menubutton.html +318 -0
- data/closure-library/closure/goog/demos/mousewheelhandler.html +109 -0
- data/closure-library/closure/goog/demos/offline.html +268 -0
- data/closure-library/closure/goog/demos/onlinehandler.html +77 -0
- data/closure-library/closure/goog/demos/palette.html +302 -0
- data/closure-library/closure/goog/demos/pastehandler.html +54 -0
- data/closure-library/closure/goog/demos/plaintextspellchecker.html +106 -0
- data/closure-library/closure/goog/demos/popup.html +200 -0
- data/closure-library/closure/goog/demos/popupcolorpicker.html +49 -0
- data/closure-library/closure/goog/demos/popupdatepicker.html +53 -0
- data/closure-library/closure/goog/demos/popupemojipicker.html +407 -0
- data/closure-library/closure/goog/demos/popupmenu.html +89 -0
- data/closure-library/closure/goog/demos/progressbar.html +97 -0
- data/closure-library/closure/goog/demos/prompt.html +92 -0
- data/closure-library/closure/goog/demos/quadtree.html +107 -0
- data/closure-library/closure/goog/demos/ratings.html +120 -0
- data/closure-library/closure/goog/demos/richtextspellchecker.html +92 -0
- data/closure-library/closure/goog/demos/roundedpanel.html +139 -0
- data/closure-library/closure/goog/demos/samplecomponent.html +75 -0
- data/closure-library/closure/goog/demos/samplecomponent.js +206 -0
- data/closure-library/closure/goog/demos/scrollfloater.html +117 -0
- data/closure-library/closure/goog/demos/select.html +324 -0
- data/closure-library/closure/goog/demos/selectionmenubutton.html +186 -0
- data/closure-library/closure/goog/demos/serverchart.html +122 -0
- data/closure-library/closure/goog/demos/silverlightclipboardbutton.html +71 -0
- data/closure-library/closure/goog/demos/slider.html +110 -0
- data/closure-library/closure/goog/demos/splitbehavior.html +164 -0
- data/closure-library/closure/goog/demos/splitpane.html +243 -0
- data/closure-library/closure/goog/demos/stopevent.html +171 -0
- data/closure-library/closure/goog/demos/submenus.html +130 -0
- data/closure-library/closure/goog/demos/submenus2.html +150 -0
- data/closure-library/closure/goog/demos/tabbar.html +289 -0
- data/closure-library/closure/goog/demos/tablesorter.html +116 -0
- data/closure-library/closure/goog/demos/tabpane.html +302 -0
- data/closure-library/closure/goog/demos/textarea.html +128 -0
- data/closure-library/closure/goog/demos/timers.html +291 -0
- data/closure-library/closure/goog/demos/toolbar.html +703 -0
- data/closure-library/closure/goog/demos/tooltip.html +91 -0
- data/closure-library/closure/goog/demos/tracer.html +92 -0
- data/closure-library/closure/goog/demos/tree/demo.html +126 -0
- data/closure-library/closure/goog/demos/tree/testdata.js +260 -0
- data/closure-library/closure/goog/demos/tweakui.html +121 -0
- data/closure-library/closure/goog/demos/twothumbslider.html +121 -0
- data/closure-library/closure/goog/demos/useragent.html +173 -0
- data/closure-library/closure/goog/demos/viewportsizemonitor.html +71 -0
- data/closure-library/closure/goog/demos/xpc/blank.html +7 -0
- data/closure-library/closure/goog/demos/xpc/index.html +89 -0
- data/closure-library/closure/goog/demos/xpc/inner.html +58 -0
- data/closure-library/closure/goog/demos/xpc/minimal/blank.html +7 -0
- data/closure-library/closure/goog/demos/xpc/minimal/index.html +105 -0
- data/closure-library/closure/goog/demos/xpc/minimal/inner.html +75 -0
- data/closure-library/closure/goog/demos/xpc/minimal/relay.html +7 -0
- data/closure-library/closure/goog/demos/xpc/relay.html +7 -0
- data/closure-library/closure/goog/demos/xpc/xpcdemo.js +304 -0
- data/closure-library/closure/goog/demos/zippy.html +127 -0
- data/closure-library/closure/goog/deps.js +672 -0
- data/closure-library/closure/goog/disposable/disposable.js +167 -0
- data/closure-library/closure/goog/disposable/disposable_test.html +202 -0
- data/closure-library/closure/goog/dom/a11y.js +438 -0
- data/closure-library/closure/goog/dom/a11y_test.html +86 -0
- data/closure-library/closure/goog/dom/abstractmultirange.js +77 -0
- data/closure-library/closure/goog/dom/abstractrange.js +514 -0
- data/closure-library/closure/goog/dom/abstractrange_test.html +73 -0
- data/closure-library/closure/goog/dom/annotate.js +352 -0
- data/closure-library/closure/goog/dom/annotate_test.html +187 -0
- data/closure-library/closure/goog/dom/browserfeature.js +50 -0
- data/closure-library/closure/goog/dom/browserrange/abstractrange.js +316 -0
- data/closure-library/closure/goog/dom/browserrange/browserrange.js +149 -0
- data/closure-library/closure/goog/dom/browserrange/browserrange_test.html +562 -0
- data/closure-library/closure/goog/dom/browserrange/geckorange.js +82 -0
- data/closure-library/closure/goog/dom/browserrange/ierange.js +970 -0
- data/closure-library/closure/goog/dom/browserrange/operarange.js +83 -0
- data/closure-library/closure/goog/dom/browserrange/w3crange.js +364 -0
- data/closure-library/closure/goog/dom/browserrange/webkitrange.js +112 -0
- data/closure-library/closure/goog/dom/classes.js +233 -0
- data/closure-library/closure/goog/dom/classes_test.html +228 -0
- data/closure-library/closure/goog/dom/controlrange.js +511 -0
- data/closure-library/closure/goog/dom/controlrange_test.html +246 -0
- data/closure-library/closure/goog/dom/dataset.js +90 -0
- data/closure-library/closure/goog/dom/dataset_test.html +104 -0
- data/closure-library/closure/goog/dom/dom.js +2424 -0
- data/closure-library/closure/goog/dom/dom_quirks_test.html +104 -0
- data/closure-library/closure/goog/dom/dom_test.html +103 -0
- data/closure-library/closure/goog/dom/dom_test.js +1129 -0
- data/closure-library/closure/goog/dom/fontsizemonitor.js +159 -0
- data/closure-library/closure/goog/dom/fontsizemonitor_test.html +283 -0
- data/closure-library/closure/goog/dom/forms.js +403 -0
- data/closure-library/closure/goog/dom/forms_test.html +483 -0
- data/closure-library/closure/goog/dom/iframe.js +128 -0
- data/closure-library/closure/goog/dom/iframe_test.html +87 -0
- data/closure-library/closure/goog/dom/iter.js +127 -0
- data/closure-library/closure/goog/dom/iter_test.html +97 -0
- data/closure-library/closure/goog/dom/multirange.js +519 -0
- data/closure-library/closure/goog/dom/multirange_test.html +67 -0
- data/closure-library/closure/goog/dom/nodeiterator.js +85 -0
- data/closure-library/closure/goog/dom/nodeiterator_test.html +49 -0
- data/closure-library/closure/goog/dom/nodeoffset.js +111 -0
- data/closure-library/closure/goog/dom/nodeoffset_test.html +88 -0
- data/closure-library/closure/goog/dom/pattern/abstractpattern.js +60 -0
- data/closure-library/closure/goog/dom/pattern/allchildren.js +73 -0
- data/closure-library/closure/goog/dom/pattern/callback/callback.js +82 -0
- data/closure-library/closure/goog/dom/pattern/callback/counter.js +72 -0
- data/closure-library/closure/goog/dom/pattern/callback/test.js +77 -0
- data/closure-library/closure/goog/dom/pattern/childmatches.js +152 -0
- data/closure-library/closure/goog/dom/pattern/endtag.js +53 -0
- data/closure-library/closure/goog/dom/pattern/fulltag.js +92 -0
- data/closure-library/closure/goog/dom/pattern/matcher.js +150 -0
- data/closure-library/closure/goog/dom/pattern/matcher_test.html +204 -0
- data/closure-library/closure/goog/dom/pattern/nodetype.js +57 -0
- data/closure-library/closure/goog/dom/pattern/pattern.js +93 -0
- data/closure-library/closure/goog/dom/pattern/pattern_test.html +614 -0
- data/closure-library/closure/goog/dom/pattern/repeat.js +188 -0
- data/closure-library/closure/goog/dom/pattern/sequence.js +139 -0
- data/closure-library/closure/goog/dom/pattern/starttag.js +53 -0
- data/closure-library/closure/goog/dom/pattern/tag.js +149 -0
- data/closure-library/closure/goog/dom/pattern/text.js +69 -0
- data/closure-library/closure/goog/dom/range.js +220 -0
- data/closure-library/closure/goog/dom/range_test.html +702 -0
- data/closure-library/closure/goog/dom/rangeendpoint.js +32 -0
- data/closure-library/closure/goog/dom/savedcaretrange.js +203 -0
- data/closure-library/closure/goog/dom/savedcaretrange_test.html +235 -0
- data/closure-library/closure/goog/dom/savedrange.js +74 -0
- data/closure-library/closure/goog/dom/savedrange_test.html +61 -0
- data/closure-library/closure/goog/dom/selection.js +470 -0
- data/closure-library/closure/goog/dom/selection_test.html +329 -0
- data/closure-library/closure/goog/dom/tagiterator.js +365 -0
- data/closure-library/closure/goog/dom/tagiterator_test.html +589 -0
- data/closure-library/closure/goog/dom/tagname.js +121 -0
- data/closure-library/closure/goog/dom/tagname_test.html +37 -0
- data/closure-library/closure/goog/dom/textrange.js +611 -0
- data/closure-library/closure/goog/dom/textrange_test.html +127 -0
- data/closure-library/closure/goog/dom/textrangeiterator.js +246 -0
- data/closure-library/closure/goog/dom/textrangeiterator_test.html +142 -0
- data/closure-library/closure/goog/dom/viewportsizemonitor.js +220 -0
- data/closure-library/closure/goog/dom/viewportsizemonitor_test.html +166 -0
- data/closure-library/closure/goog/dom/xml.js +187 -0
- data/closure-library/closure/goog/dom/xml_test.html +77 -0
- data/closure-library/closure/goog/editor/browserfeature.js +251 -0
- data/closure-library/closure/goog/editor/browserfeature_test.html +124 -0
- data/closure-library/closure/goog/editor/clicktoeditwrapper.js +438 -0
- data/closure-library/closure/goog/editor/clicktoeditwrapper_test.html +137 -0
- data/closure-library/closure/goog/editor/command.js +74 -0
- data/closure-library/closure/goog/editor/defines.js +34 -0
- data/closure-library/closure/goog/editor/field.js +2594 -0
- data/closure-library/closure/goog/editor/field_test.html +1000 -0
- data/closure-library/closure/goog/editor/focus.js +32 -0
- data/closure-library/closure/goog/editor/focus_test.html +66 -0
- data/closure-library/closure/goog/editor/icontent.js +296 -0
- data/closure-library/closure/goog/editor/icontent_test.html +209 -0
- data/closure-library/closure/goog/editor/link.js +279 -0
- data/closure-library/closure/goog/editor/link_test.html +234 -0
- data/closure-library/closure/goog/editor/node.js +435 -0
- data/closure-library/closure/goog/editor/node_test.html +590 -0
- data/closure-library/closure/goog/editor/plugin.js +444 -0
- data/closure-library/closure/goog/editor/plugin_test.html +187 -0
- data/closure-library/closure/goog/editor/plugins/abstractbubbleplugin.js +535 -0
- data/closure-library/closure/goog/editor/plugins/abstractbubbleplugin_test.html +227 -0
- data/closure-library/closure/goog/editor/plugins/abstractdialogplugin.js +336 -0
- data/closure-library/closure/goog/editor/plugins/abstractdialogplugin_test.html +399 -0
- data/closure-library/closure/goog/editor/plugins/abstracttabhandler.js +78 -0
- data/closure-library/closure/goog/editor/plugins/abstracttabhandler_test.html +91 -0
- data/closure-library/closure/goog/editor/plugins/basictextformatter.js +1740 -0
- data/closure-library/closure/goog/editor/plugins/basictextformatter_test.html +1171 -0
- data/closure-library/closure/goog/editor/plugins/blockquote.js +422 -0
- data/closure-library/closure/goog/editor/plugins/blockquote_test.html +149 -0
- data/closure-library/closure/goog/editor/plugins/emoticons.js +83 -0
- data/closure-library/closure/goog/editor/plugins/emoticons_test.html +67 -0
- data/closure-library/closure/goog/editor/plugins/enterhandler.js +730 -0
- data/closure-library/closure/goog/editor/plugins/enterhandler_test.html +739 -0
- data/closure-library/closure/goog/editor/plugins/headerformatter.js +95 -0
- data/closure-library/closure/goog/editor/plugins/headerformatter_test.html +100 -0
- data/closure-library/closure/goog/editor/plugins/linkbubble.js +458 -0
- data/closure-library/closure/goog/editor/plugins/linkbubble_test.html +309 -0
- data/closure-library/closure/goog/editor/plugins/linkdialogplugin.js +222 -0
- data/closure-library/closure/goog/editor/plugins/linkdialogplugin_test.html +370 -0
- data/closure-library/closure/goog/editor/plugins/listtabhandler.js +66 -0
- data/closure-library/closure/goog/editor/plugins/listtabhandler_test.html +177 -0
- data/closure-library/closure/goog/editor/plugins/loremipsum.js +186 -0
- data/closure-library/closure/goog/editor/plugins/loremipsum_test.html +169 -0
- data/closure-library/closure/goog/editor/plugins/removeformatting.js +772 -0
- data/closure-library/closure/goog/editor/plugins/removeformatting_test.html +920 -0
- data/closure-library/closure/goog/editor/plugins/spacestabhandler.js +93 -0
- data/closure-library/closure/goog/editor/plugins/spacestabhandler_test.html +186 -0
- data/closure-library/closure/goog/editor/plugins/tableeditor.js +496 -0
- data/closure-library/closure/goog/editor/plugins/tableeditor_test.html +299 -0
- data/closure-library/closure/goog/editor/plugins/tagonenterhandler.js +741 -0
- data/closure-library/closure/goog/editor/plugins/tagonenterhandler_test.html +481 -0
- data/closure-library/closure/goog/editor/plugins/undoredo.js +1014 -0
- data/closure-library/closure/goog/editor/plugins/undoredo_test.html +525 -0
- data/closure-library/closure/goog/editor/plugins/undoredomanager.js +337 -0
- data/closure-library/closure/goog/editor/plugins/undoredomanager_test.html +394 -0
- data/closure-library/closure/goog/editor/plugins/undoredostate.js +84 -0
- data/closure-library/closure/goog/editor/plugins/undoredostate_test.html +44 -0
- data/closure-library/closure/goog/editor/range.js +602 -0
- data/closure-library/closure/goog/editor/range_test.html +880 -0
- data/closure-library/closure/goog/editor/seamlessfield.js +720 -0
- data/closure-library/closure/goog/editor/seamlessfield_quirks_test.html +30 -0
- data/closure-library/closure/goog/editor/seamlessfield_test.html +33 -0
- data/closure-library/closure/goog/editor/seamlessfield_test.js +392 -0
- data/closure-library/closure/goog/editor/style.js +222 -0
- data/closure-library/closure/goog/editor/style_test.html +177 -0
- data/closure-library/closure/goog/editor/table.js +566 -0
- data/closure-library/closure/goog/editor/table_test.html +522 -0
- data/closure-library/closure/goog/events/actioneventwrapper.js +131 -0
- data/closure-library/closure/goog/events/actioneventwrapper_test.html +176 -0
- data/closure-library/closure/goog/events/actionhandler.js +189 -0
- data/closure-library/closure/goog/events/actionhandler_test.html +82 -0
- data/closure-library/closure/goog/events/browserevent.js +412 -0
- data/closure-library/closure/goog/events/browserevent_test.html +145 -0
- data/closure-library/closure/goog/events/browserfeature.js +43 -0
- data/closure-library/closure/goog/events/event.js +123 -0
- data/closure-library/closure/goog/events/event_test.html +70 -0
- data/closure-library/closure/goog/events/eventhandler.js +348 -0
- data/closure-library/closure/goog/events/eventhandler_test.html +230 -0
- data/closure-library/closure/goog/events/events.js +1101 -0
- data/closure-library/closure/goog/events/events_test.html +362 -0
- data/closure-library/closure/goog/events/eventtarget.js +197 -0
- data/closure-library/closure/goog/events/eventtarget_test.html +423 -0
- data/closure-library/closure/goog/events/eventtype.js +107 -0
- data/closure-library/closure/goog/events/eventwrapper.js +67 -0
- data/closure-library/closure/goog/events/filedrophandler.js +224 -0
- data/closure-library/closure/goog/events/filedrophandler_test.html +258 -0
- data/closure-library/closure/goog/events/focushandler.js +111 -0
- data/closure-library/closure/goog/events/imehandler.js +365 -0
- data/closure-library/closure/goog/events/imehandler_test.html +271 -0
- data/closure-library/closure/goog/events/inputhandler.js +218 -0
- data/closure-library/closure/goog/events/keycodes.js +314 -0
- data/closure-library/closure/goog/events/keycodes_test.html +72 -0
- data/closure-library/closure/goog/events/keyhandler.js +522 -0
- data/closure-library/closure/goog/events/keyhandler_test.html +621 -0
- data/closure-library/closure/goog/events/keynames.js +124 -0
- data/closure-library/closure/goog/events/listener.js +160 -0
- data/closure-library/closure/goog/events/mousewheelhandler.js +280 -0
- data/closure-library/closure/goog/events/mousewheelhandler_test.html +331 -0
- data/closure-library/closure/goog/events/onlinehandler.js +176 -0
- data/closure-library/closure/goog/events/onlinelistener_test.html +214 -0
- data/closure-library/closure/goog/events/pastehandler.js +444 -0
- data/closure-library/closure/goog/events/pastehandler_test.html +354 -0
- data/closure-library/closure/goog/events/pools.js +342 -0
- data/closure-library/closure/goog/format/emailaddress.js +329 -0
- data/closure-library/closure/goog/format/emailaddress_test.html +179 -0
- data/closure-library/closure/goog/format/format.js +451 -0
- data/closure-library/closure/goog/format/format_test.html +257 -0
- data/closure-library/closure/goog/format/htmlprettyprinter.js +406 -0
- data/closure-library/closure/goog/format/htmlprettyprinter_test.html +205 -0
- data/closure-library/closure/goog/format/jsonprettyprinter.js +405 -0
- data/closure-library/closure/goog/format/jsonprettyprinter_test.html +111 -0
- data/closure-library/closure/goog/fs/entry.js +406 -0
- data/closure-library/closure/goog/fs/error.js +103 -0
- data/closure-library/closure/goog/fs/filesaver.js +214 -0
- data/closure-library/closure/goog/fs/filesystem.js +59 -0
- data/closure-library/closure/goog/fs/filewriter.js +106 -0
- data/closure-library/closure/goog/fs/fs.js +183 -0
- data/closure-library/closure/goog/fs/fs_test.html +270 -0
- data/closure-library/closure/goog/functions/functions.js +219 -0
- data/closure-library/closure/goog/functions/functions_test.html +198 -0
- data/closure-library/closure/goog/fx/abstractdragdrop.js +1451 -0
- data/closure-library/closure/goog/fx/abstractdragdrop_test.html +430 -0
- data/closure-library/closure/goog/fx/animation.js +621 -0
- data/closure-library/closure/goog/fx/animationqueue.js +348 -0
- data/closure-library/closure/goog/fx/cssspriteanimation.js +112 -0
- data/closure-library/closure/goog/fx/cssspriteanimation_test.html +125 -0
- data/closure-library/closure/goog/fx/dom.js +610 -0
- data/closure-library/closure/goog/fx/dragdrop.js +49 -0
- data/closure-library/closure/goog/fx/dragdropgroup.js +107 -0
- data/closure-library/closure/goog/fx/dragdropgroup_test.html +234 -0
- data/closure-library/closure/goog/fx/dragger.js +731 -0
- data/closure-library/closure/goog/fx/dragger_test.html +415 -0
- data/closure-library/closure/goog/fx/draglistgroup.js +1159 -0
- data/closure-library/closure/goog/fx/draglistgroup_test.html +231 -0
- data/closure-library/closure/goog/fx/dragscrollsupport.js +274 -0
- data/closure-library/closure/goog/fx/dragscrollsupport_test.html +253 -0
- data/closure-library/closure/goog/fx/easing.js +50 -0
- data/closure-library/closure/goog/fx/fx.js +30 -0
- data/closure-library/closure/goog/fx/fx_test.html +157 -0
- data/closure-library/closure/goog/gears/basestore.js +523 -0
- data/closure-library/closure/goog/gears/basestore_test.html +247 -0
- data/closure-library/closure/goog/gears/database.js +935 -0
- data/closure-library/closure/goog/gears/database_test.html +699 -0
- data/closure-library/closure/goog/gears/fakeworkerpool.js +252 -0
- data/closure-library/closure/goog/gears/fakeworkerpool_test.html +188 -0
- data/closure-library/closure/goog/gears/gears.js +228 -0
- data/closure-library/closure/goog/gears/gears_test.html +78 -0
- data/closure-library/closure/goog/gears/httprequest.js +77 -0
- data/closure-library/closure/goog/gears/loggerclient.js +131 -0
- data/closure-library/closure/goog/gears/loggerclient_test.html +171 -0
- data/closure-library/closure/goog/gears/loggerserver.js +158 -0
- data/closure-library/closure/goog/gears/loggerserver_test.html +118 -0
- data/closure-library/closure/goog/gears/logstore.js +479 -0
- data/closure-library/closure/goog/gears/logstore_test.html +600 -0
- data/closure-library/closure/goog/gears/managedresourcestore.js +553 -0
- data/closure-library/closure/goog/gears/managedresourcestore_test.html +453 -0
- data/closure-library/closure/goog/gears/multipartformdata.js +203 -0
- data/closure-library/closure/goog/gears/multipartformdata_test.html +220 -0
- data/closure-library/closure/goog/gears/statustype.js +37 -0
- data/closure-library/closure/goog/gears/urlcapture.js +370 -0
- data/closure-library/closure/goog/gears/urlcapture_test.html +392 -0
- data/closure-library/closure/goog/gears/worker.js +201 -0
- data/closure-library/closure/goog/gears/workerchannel.js +205 -0
- data/closure-library/closure/goog/gears/workerchannel_test.html +207 -0
- data/closure-library/closure/goog/gears/workerpool.js +241 -0
- data/closure-library/closure/goog/gears/workerpool_test.html +203 -0
- data/closure-library/closure/goog/graphics/abstractgraphics.js +439 -0
- data/closure-library/closure/goog/graphics/affinetransform.js +497 -0
- data/closure-library/closure/goog/graphics/affinetransform_test.html +316 -0
- data/closure-library/closure/goog/graphics/canvaselement.js +776 -0
- data/closure-library/closure/goog/graphics/canvasgraphics.js +632 -0
- data/closure-library/closure/goog/graphics/element.js +145 -0
- data/closure-library/closure/goog/graphics/ellipseelement.js +59 -0
- data/closure-library/closure/goog/graphics/ext/coordinates.js +158 -0
- data/closure-library/closure/goog/graphics/ext/coordinates_test.html +74 -0
- data/closure-library/closure/goog/graphics/ext/element.js +970 -0
- data/closure-library/closure/goog/graphics/ext/element_test.html +144 -0
- data/closure-library/closure/goog/graphics/ext/ellipse.js +58 -0
- data/closure-library/closure/goog/graphics/ext/ext.js +29 -0
- data/closure-library/closure/goog/graphics/ext/graphics.js +209 -0
- data/closure-library/closure/goog/graphics/ext/group.js +213 -0
- data/closure-library/closure/goog/graphics/ext/image.js +62 -0
- data/closure-library/closure/goog/graphics/ext/path.js +140 -0
- data/closure-library/closure/goog/graphics/ext/path_test.html +46 -0
- data/closure-library/closure/goog/graphics/ext/rectangle.js +53 -0
- data/closure-library/closure/goog/graphics/ext/shape.js +144 -0
- data/closure-library/closure/goog/graphics/ext/strokeandfillelement.js +69 -0
- data/closure-library/closure/goog/graphics/fill.js +29 -0
- data/closure-library/closure/goog/graphics/font.js +59 -0
- data/closure-library/closure/goog/graphics/graphics.js +124 -0
- data/closure-library/closure/goog/graphics/groupelement.js +54 -0
- data/closure-library/closure/goog/graphics/imageelement.js +67 -0
- data/closure-library/closure/goog/graphics/lineargradient.js +131 -0
- data/closure-library/closure/goog/graphics/path.js +508 -0
- data/closure-library/closure/goog/graphics/path_test.html +359 -0
- data/closure-library/closure/goog/graphics/pathelement.js +50 -0
- data/closure-library/closure/goog/graphics/paths.js +86 -0
- data/closure-library/closure/goog/graphics/paths_test.html +97 -0
- data/closure-library/closure/goog/graphics/rectelement.js +59 -0
- data/closure-library/closure/goog/graphics/solidfill.js +70 -0
- data/closure-library/closure/goog/graphics/stroke.js +63 -0
- data/closure-library/closure/goog/graphics/strokeandfillelement.js +110 -0
- data/closure-library/closure/goog/graphics/svgelement.js +262 -0
- data/closure-library/closure/goog/graphics/svggraphics.js +813 -0
- data/closure-library/closure/goog/graphics/textelement.js +51 -0
- data/closure-library/closure/goog/graphics/vmlelement.js +380 -0
- data/closure-library/closure/goog/graphics/vmlgraphics.js +863 -0
- data/closure-library/closure/goog/history/event.js +54 -0
- data/closure-library/closure/goog/history/eventtype.js +30 -0
- data/closure-library/closure/goog/history/history.js +979 -0
- data/closure-library/closure/goog/history/html5history.js +303 -0
- data/closure-library/closure/goog/history/html5history_test.html +163 -0
- data/closure-library/closure/goog/i18n/bidi.js +772 -0
- data/closure-library/closure/goog/i18n/bidi_test.html +414 -0
- data/closure-library/closure/goog/i18n/bidiformatter.js +488 -0
- data/closure-library/closure/goog/i18n/bidiformatter_test.html +343 -0
- data/closure-library/closure/goog/i18n/charlistdecompressor.js +157 -0
- data/closure-library/closure/goog/i18n/charlistdecompressor_test.html +65 -0
- data/closure-library/closure/goog/i18n/charpickerdata.js +3185 -0
- data/closure-library/closure/goog/i18n/currency.js +385 -0
- data/closure-library/closure/goog/i18n/currency_test.html +202 -0
- data/closure-library/closure/goog/i18n/currencycodemap.js +210 -0
- data/closure-library/closure/goog/i18n/datetimeformat.js +636 -0
- data/closure-library/closure/goog/i18n/datetimeformat_test.html +436 -0
- data/closure-library/closure/goog/i18n/datetimeparse.js +1111 -0
- data/closure-library/closure/goog/i18n/datetimeparse_test.html +796 -0
- data/closure-library/closure/goog/i18n/datetimepatterns.js +1586 -0
- data/closure-library/closure/goog/i18n/datetimepatternsext.js +7386 -0
- data/closure-library/closure/goog/i18n/datetimesymbols.js +3350 -0
- data/closure-library/closure/goog/i18n/datetimesymbolsext.js +12938 -0
- data/closure-library/closure/goog/i18n/graphemebreak.js +181 -0
- data/closure-library/closure/goog/i18n/graphemebreak_test.html +72 -0
- data/closure-library/closure/goog/i18n/messageformat.js +553 -0
- data/closure-library/closure/goog/i18n/messageformat_test.html +323 -0
- data/closure-library/closure/goog/i18n/mime.js +100 -0
- data/closure-library/closure/goog/i18n/mime_test.html +51 -0
- data/closure-library/closure/goog/i18n/numberformat.js +763 -0
- data/closure-library/closure/goog/i18n/numberformat_test.html +605 -0
- data/closure-library/closure/goog/i18n/numberformatsymbols.js +10358 -0
- data/closure-library/closure/goog/i18n/pluralrules.js +695 -0
- data/closure-library/closure/goog/i18n/timezone.js +341 -0
- data/closure-library/closure/goog/i18n/timezone_test.html +163 -0
- data/closure-library/closure/goog/i18n/uchar.js +1160 -0
- data/closure-library/closure/goog/i18n/uchar_test.html +72 -0
- data/closure-library/closure/goog/images/blank.gif +0 -0
- data/closure-library/closure/goog/images/bubble_close.jpg +0 -0
- data/closure-library/closure/goog/images/bubble_left.gif +0 -0
- data/closure-library/closure/goog/images/bubble_right.gif +0 -0
- data/closure-library/closure/goog/images/button-bg.gif +0 -0
- data/closure-library/closure/goog/images/check-outline.gif +0 -0
- data/closure-library/closure/goog/images/check-sprite.gif +0 -0
- data/closure-library/closure/goog/images/check.gif +0 -0
- data/closure-library/closure/goog/images/close_box.gif +0 -0
- data/closure-library/closure/goog/images/color-swatch-tick.gif +0 -0
- data/closure-library/closure/goog/images/dialog_close_box.gif +0 -0
- data/closure-library/closure/goog/images/dimension-highlighted.png +0 -0
- data/closure-library/closure/goog/images/dimension-unhighlighted.png +0 -0
- data/closure-library/closure/goog/images/dropdn.gif +0 -0
- data/closure-library/closure/goog/images/dropdn_disabled.gif +0 -0
- data/closure-library/closure/goog/images/dropdown.gif +0 -0
- data/closure-library/closure/goog/images/gears_bluedot.gif +0 -0
- data/closure-library/closure/goog/images/gears_offline.gif +0 -0
- data/closure-library/closure/goog/images/gears_online.gif +0 -0
- data/closure-library/closure/goog/images/gears_paused.gif +0 -0
- data/closure-library/closure/goog/images/gears_syncing.gif +0 -0
- data/closure-library/closure/goog/images/hsv-sprite-sm.gif +0 -0
- data/closure-library/closure/goog/images/hsv-sprite-sm.png +0 -0
- data/closure-library/closure/goog/images/hsv-sprite.gif +0 -0
- data/closure-library/closure/goog/images/hsv-sprite.png +0 -0
- data/closure-library/closure/goog/images/hsva-sprite-sm.gif +0 -0
- data/closure-library/closure/goog/images/hsva-sprite-sm.png +0 -0
- data/closure-library/closure/goog/images/hsva-sprite.gif +0 -0
- data/closure-library/closure/goog/images/hsva-sprite.png +0 -0
- data/closure-library/closure/goog/images/left_anchor_bubble_bot.gif +0 -0
- data/closure-library/closure/goog/images/left_anchor_bubble_top.gif +0 -0
- data/closure-library/closure/goog/images/menu-arrows.gif +0 -0
- data/closure-library/closure/goog/images/minus.png +0 -0
- data/closure-library/closure/goog/images/no_anchor_bubble_bot.gif +0 -0
- data/closure-library/closure/goog/images/no_anchor_bubble_top.gif +0 -0
- data/closure-library/closure/goog/images/offlineicons.png +0 -0
- data/closure-library/closure/goog/images/plus.png +0 -0
- data/closure-library/closure/goog/images/ratingstars.gif +0 -0
- data/closure-library/closure/goog/images/right_anchor_bubble_bot.gif +0 -0
- data/closure-library/closure/goog/images/right_anchor_bubble_top.gif +0 -0
- data/closure-library/closure/goog/images/toolbar-bg.png +0 -0
- data/closure-library/closure/goog/images/toolbar-separator.gif +0 -0
- data/closure-library/closure/goog/images/toolbar_icons.gif +0 -0
- data/closure-library/closure/goog/images/tree/I.png +0 -0
- data/closure-library/closure/goog/images/tree/cleardot.gif +0 -0
- data/closure-library/closure/goog/images/tree/tree.gif +0 -0
- data/closure-library/closure/goog/images/tree/tree.png +0 -0
- data/closure-library/closure/goog/images/ui_controls.jpg +0 -0
- data/closure-library/closure/goog/iter/iter.js +627 -0
- data/closure-library/closure/goog/iter/iter_test.html +443 -0
- data/closure-library/closure/goog/json/json.js +302 -0
- data/closure-library/closure/goog/json/json_test.html +501 -0
- data/closure-library/closure/goog/locale/countries.js +288 -0
- data/closure-library/closure/goog/locale/countrylanguagenames_test.html +233 -0
- data/closure-library/closure/goog/locale/defaultlocalenameconstants.js +847 -0
- data/closure-library/closure/goog/locale/genericfontnames.js +73 -0
- data/closure-library/closure/goog/locale/genericfontnames_test.html +97 -0
- data/closure-library/closure/goog/locale/genericfontnamesdata.js +328 -0
- data/closure-library/closure/goog/locale/locale.js +397 -0
- data/closure-library/closure/goog/locale/nativenameconstants.js +1354 -0
- data/closure-library/closure/goog/locale/scriptToLanguages.js +482 -0
- data/closure-library/closure/goog/locale/timezonedetection.js +117 -0
- data/closure-library/closure/goog/locale/timezonedetection_test.html +130 -0
- data/closure-library/closure/goog/locale/timezonefingerprint.js +250 -0
- data/closure-library/closure/goog/locale/timezonelist.js +129 -0
- data/closure-library/closure/goog/locale/timezonelist_test.html +165 -0
- data/closure-library/closure/goog/math/bezier.js +244 -0
- data/closure-library/closure/goog/math/bezier_test.html +70 -0
- data/closure-library/closure/goog/math/box.js +236 -0
- data/closure-library/closure/goog/math/box_test.html +139 -0
- data/closure-library/closure/goog/math/coordinate.js +136 -0
- data/closure-library/closure/goog/math/coordinate3.js +168 -0
- data/closure-library/closure/goog/math/coordinate3_test.html +208 -0
- data/closure-library/closure/goog/math/coordinate_test.html +92 -0
- data/closure-library/closure/goog/math/integer.js +736 -0
- data/closure-library/closure/goog/math/integer_test.html +1653 -0
- data/closure-library/closure/goog/math/line.js +177 -0
- data/closure-library/closure/goog/math/line_test.html +62 -0
- data/closure-library/closure/goog/math/long.js +801 -0
- data/closure-library/closure/goog/math/long_test.html +1571 -0
- data/closure-library/closure/goog/math/math.js +355 -0
- data/closure-library/closure/goog/math/math_test.html +254 -0
- data/closure-library/closure/goog/math/matrix.js +669 -0
- data/closure-library/closure/goog/math/matrix_test.html +427 -0
- data/closure-library/closure/goog/math/range.js +146 -0
- data/closure-library/closure/goog/math/range_test.html +103 -0
- data/closure-library/closure/goog/math/rangeset.js +368 -0
- data/closure-library/closure/goog/math/rangeset_test.html +619 -0
- data/closure-library/closure/goog/math/rect.js +340 -0
- data/closure-library/closure/goog/math/rect_test.html +315 -0
- data/closure-library/closure/goog/math/size.js +201 -0
- data/closure-library/closure/goog/math/size_test.html +174 -0
- data/closure-library/closure/goog/math/vec2.js +255 -0
- data/closure-library/closure/goog/math/vec2_test.html +203 -0
- data/closure-library/closure/goog/math/vec3.js +327 -0
- data/closure-library/closure/goog/math/vec3_test.html +231 -0
- data/closure-library/closure/goog/memoize/memoize.js +98 -0
- data/closure-library/closure/goog/memoize/memoize_test.html +157 -0
- data/closure-library/closure/goog/messaging/abstractchannel.js +209 -0
- data/closure-library/closure/goog/messaging/abstractchannel_test.html +90 -0
- data/closure-library/closure/goog/messaging/bufferedchannel.js +277 -0
- data/closure-library/closure/goog/messaging/bufferedchannel_test.html +205 -0
- data/closure-library/closure/goog/messaging/deferredchannel.js +79 -0
- data/closure-library/closure/goog/messaging/deferredchannel_test.html +107 -0
- data/closure-library/closure/goog/messaging/loggerclient.js +131 -0
- data/closure-library/closure/goog/messaging/loggerclient_test.html +102 -0
- data/closure-library/closure/goog/messaging/loggerserver.js +94 -0
- data/closure-library/closure/goog/messaging/loggerserver_test.html +101 -0
- data/closure-library/closure/goog/messaging/messagechannel.js +115 -0
- data/closure-library/closure/goog/messaging/messaging.js +34 -0
- data/closure-library/closure/goog/messaging/messaging_test.html +42 -0
- data/closure-library/closure/goog/messaging/multichannel.js +303 -0
- data/closure-library/closure/goog/messaging/multichannel_test.html +122 -0
- data/closure-library/closure/goog/messaging/portchannel.js +341 -0
- data/closure-library/closure/goog/messaging/portchannel_test.html +359 -0
- data/closure-library/closure/goog/messaging/testdata/portchannel_worker.js +37 -0
- data/closure-library/closure/goog/module/abstractmoduleloader.js +46 -0
- data/closure-library/closure/goog/module/basemodule.js +45 -0
- data/closure-library/closure/goog/module/basemoduleloader.js +210 -0
- data/closure-library/closure/goog/module/loader.js +269 -0
- data/closure-library/closure/goog/module/module.js +166 -0
- data/closure-library/closure/goog/module/moduleinfo.js +336 -0
- data/closure-library/closure/goog/module/moduleinfo_test.html +109 -0
- data/closure-library/closure/goog/module/moduleloadcallback.js +84 -0
- data/closure-library/closure/goog/module/moduleloadcallback_test.html +57 -0
- data/closure-library/closure/goog/module/moduleloader.js +250 -0
- data/closure-library/closure/goog/module/moduleloader_test.html +244 -0
- data/closure-library/closure/goog/module/modulemanager.js +1008 -0
- data/closure-library/closure/goog/module/modulemanager_test.html +1240 -0
- data/closure-library/closure/goog/module/testdata/modA_1.js +22 -0
- data/closure-library/closure/goog/module/testdata/modA_2.js +24 -0
- data/closure-library/closure/goog/module/testdata/modB_1.js +24 -0
- data/closure-library/closure/goog/net/browserchannel.js +2441 -0
- data/closure-library/closure/goog/net/browserchannel_test.html +1176 -0
- data/closure-library/closure/goog/net/browsertestchannel.js +552 -0
- data/closure-library/closure/goog/net/bulkloader.js +174 -0
- data/closure-library/closure/goog/net/bulkloader_test.html +232 -0
- data/closure-library/closure/goog/net/bulkloaderhelper.js +129 -0
- data/closure-library/closure/goog/net/channeldebug.js +288 -0
- data/closure-library/closure/goog/net/channelrequest.js +1125 -0
- data/closure-library/closure/goog/net/channelrequest_test.html +158 -0
- data/closure-library/closure/goog/net/cookies.js +401 -0
- data/closure-library/closure/goog/net/cookies_test.html +255 -0
- data/closure-library/closure/goog/net/crossdomainrpc.js +848 -0
- data/closure-library/closure/goog/net/crossdomainrpc_test.gif +0 -0
- data/closure-library/closure/goog/net/crossdomainrpc_test.html +120 -0
- data/closure-library/closure/goog/net/crossdomainrpc_test_response.html +59 -0
- data/closure-library/closure/goog/net/errorcode.js +130 -0
- data/closure-library/closure/goog/net/eventtype.js +37 -0
- data/closure-library/closure/goog/net/iframe_xhr_test.html +142 -0
- data/closure-library/closure/goog/net/iframe_xhr_test_response.html +17 -0
- data/closure-library/closure/goog/net/iframeio.js +1342 -0
- data/closure-library/closure/goog/net/iframeio_different_base_test.data +2 -0
- data/closure-library/closure/goog/net/iframeio_different_base_test.html +42 -0
- data/closure-library/closure/goog/net/iframeio_test.html +368 -0
- data/closure-library/closure/goog/net/iframeloadmonitor.js +199 -0
- data/closure-library/closure/goog/net/iframeloadmonitor_test.html +113 -0
- data/closure-library/closure/goog/net/iframeloadmonitor_test_frame.html +12 -0
- data/closure-library/closure/goog/net/iframeloadmonitor_test_frame2.html +12 -0
- data/closure-library/closure/goog/net/iframeloadmonitor_test_frame3.html +12 -0
- data/closure-library/closure/goog/net/imageloader.js +237 -0
- data/closure-library/closure/goog/net/imageloader_test.html +200 -0
- data/closure-library/closure/goog/net/imageloader_testimg1.gif +0 -0
- data/closure-library/closure/goog/net/imageloader_testimg2.gif +0 -0
- data/closure-library/closure/goog/net/imageloader_testimg3.gif +0 -0
- data/closure-library/closure/goog/net/jsonp.js +379 -0
- data/closure-library/closure/goog/net/jsonp_test.html +328 -0
- data/closure-library/closure/goog/net/mockiframeio.js +318 -0
- data/closure-library/closure/goog/net/mockxhrlite.js +34 -0
- data/closure-library/closure/goog/net/mockxhrlite_test.html +109 -0
- data/closure-library/closure/goog/net/multiiframeloadmonitor.js +116 -0
- data/closure-library/closure/goog/net/multiiframeloadmonitor_test.html +172 -0
- data/closure-library/closure/goog/net/networktester.js +383 -0
- data/closure-library/closure/goog/net/networktester_test.html +227 -0
- data/closure-library/closure/goog/net/tmpnetwork.js +168 -0
- data/closure-library/closure/goog/net/wrapperxmlhttpfactory.js +68 -0
- data/closure-library/closure/goog/net/xhrio.js +1093 -0
- data/closure-library/closure/goog/net/xhrio_test.html +603 -0
- data/closure-library/closure/goog/net/xhriopool.js +87 -0
- data/closure-library/closure/goog/net/xhrlite.js +119 -0
- data/closure-library/closure/goog/net/xhrlite_test.html +156 -0
- data/closure-library/closure/goog/net/xhrlitepool.js +37 -0
- data/closure-library/closure/goog/net/xhrmanager.js +763 -0
- data/closure-library/closure/goog/net/xhrmonitor.js +254 -0
- data/closure-library/closure/goog/net/xhrmonitor_test.html +199 -0
- data/closure-library/closure/goog/net/xmlhttp.js +215 -0
- data/closure-library/closure/goog/net/xmlhttpfactory.js +64 -0
- data/closure-library/closure/goog/net/xpc/crosspagechannel.js +624 -0
- data/closure-library/closure/goog/net/xpc/crosspagechannel_test.html +422 -0
- data/closure-library/closure/goog/net/xpc/frameelementmethodtransport.js +251 -0
- data/closure-library/closure/goog/net/xpc/iframepollingtransport.js +822 -0
- data/closure-library/closure/goog/net/xpc/iframerelaytransport.js +288 -0
- data/closure-library/closure/goog/net/xpc/nativemessagingtransport.js +280 -0
- data/closure-library/closure/goog/net/xpc/nativemessagingtransport_test.html +164 -0
- data/closure-library/closure/goog/net/xpc/nixtransport.js +454 -0
- data/closure-library/closure/goog/net/xpc/relay.js +72 -0
- data/closure-library/closure/goog/net/xpc/testdata/inner_peer.html +106 -0
- data/closure-library/closure/goog/net/xpc/transport.js +104 -0
- data/closure-library/closure/goog/net/xpc/xpc.js +238 -0
- data/closure-library/closure/goog/object/object.js +553 -0
- data/closure-library/closure/goog/object/object_test.html +376 -0
- data/closure-library/closure/goog/positioning/absoluteposition.js +73 -0
- data/closure-library/closure/goog/positioning/abstractposition.js +47 -0
- data/closure-library/closure/goog/positioning/anchoredposition.js +78 -0
- data/closure-library/closure/goog/positioning/anchoredviewportposition.js +126 -0
- data/closure-library/closure/goog/positioning/anchoredviewportposition_test.html +117 -0
- data/closure-library/closure/goog/positioning/anchoredviewportposition_test_iframe.html +35 -0
- data/closure-library/closure/goog/positioning/clientposition.js +75 -0
- data/closure-library/closure/goog/positioning/menuanchoredposition.js +97 -0
- data/closure-library/closure/goog/positioning/positioning.js +476 -0
- data/closure-library/closure/goog/positioning/positioning_test.html +877 -0
- data/closure-library/closure/goog/positioning/positioning_test_iframe1.html +16 -0
- data/closure-library/closure/goog/positioning/positioning_test_iframe2.html +13 -0
- data/closure-library/closure/goog/positioning/positioning_test_quirk.html +9 -0
- data/closure-library/closure/goog/positioning/positioning_test_standard.html +13 -0
- data/closure-library/closure/goog/positioning/viewportclientposition.js +102 -0
- data/closure-library/closure/goog/positioning/viewportclientposition_test.html +172 -0
- data/closure-library/closure/goog/positioning/viewportposition.js +63 -0
- data/closure-library/closure/goog/proto/proto.js +43 -0
- data/closure-library/closure/goog/proto/serializer.js +68 -0
- data/closure-library/closure/goog/proto/serializer_test.html +43 -0
- data/closure-library/closure/goog/proto2/descriptor.js +198 -0
- data/closure-library/closure/goog/proto2/descriptor_test.html +60 -0
- data/closure-library/closure/goog/proto2/fielddescriptor.js +288 -0
- data/closure-library/closure/goog/proto2/fielddescriptor_test.html +124 -0
- data/closure-library/closure/goog/proto2/lazydeserializer.js +69 -0
- data/closure-library/closure/goog/proto2/message.js +726 -0
- data/closure-library/closure/goog/proto2/message_test.html +356 -0
- data/closure-library/closure/goog/proto2/objectserializer.js +159 -0
- data/closure-library/closure/goog/proto2/objectserializer_test.html +423 -0
- data/closure-library/closure/goog/proto2/package_test.pb.js +164 -0
- data/closure-library/closure/goog/proto2/pbliteserializer.js +150 -0
- data/closure-library/closure/goog/proto2/pbliteserializer_test.html +267 -0
- data/closure-library/closure/goog/proto2/proto_test.html +693 -0
- data/closure-library/closure/goog/proto2/serializer.js +148 -0
- data/closure-library/closure/goog/proto2/test.pb.js +2820 -0
- data/closure-library/closure/goog/proto2/util.js +54 -0
- data/closure-library/closure/goog/pubsub/pubsub.js +326 -0
- data/closure-library/closure/goog/pubsub/pubsub_test.html +635 -0
- data/closure-library/closure/goog/reflect/reflect.js +50 -0
- data/closure-library/closure/goog/spell/spellcheck.js +474 -0
- data/closure-library/closure/goog/spell/spellcheck_test.html +112 -0
- data/closure-library/closure/goog/string/path.js +100 -0
- data/closure-library/closure/goog/string/path_test.html +59 -0
- data/closure-library/closure/goog/string/string.js +1207 -0
- data/closure-library/closure/goog/string/string_test.html +877 -0
- data/closure-library/closure/goog/string/stringbuffer.js +167 -0
- data/closure-library/closure/goog/string/stringbuffer_test.html +101 -0
- data/closure-library/closure/goog/string/stringformat.js +247 -0
- data/closure-library/closure/goog/string/stringformat_test.html +211 -0
- data/closure-library/closure/goog/structs/avltree.js +769 -0
- data/closure-library/closure/goog/structs/avltree_test.html +241 -0
- data/closure-library/closure/goog/structs/circularbuffer.js +219 -0
- data/closure-library/closure/goog/structs/circularbuffer_test.html +105 -0
- data/closure-library/closure/goog/structs/heap.js +332 -0
- data/closure-library/closure/goog/structs/heap_test.html +220 -0
- data/closure-library/closure/goog/structs/inversionmap.js +159 -0
- data/closure-library/closure/goog/structs/inversionmap_test.html +157 -0
- data/closure-library/closure/goog/structs/linkedmap.js +472 -0
- data/closure-library/closure/goog/structs/linkedmap_test.html +300 -0
- data/closure-library/closure/goog/structs/map.js +446 -0
- data/closure-library/closure/goog/structs/map_test.html +430 -0
- data/closure-library/closure/goog/structs/node.js +74 -0
- data/closure-library/closure/goog/structs/pool.js +344 -0
- data/closure-library/closure/goog/structs/pool_test.html +265 -0
- data/closure-library/closure/goog/structs/prioritypool.js +147 -0
- data/closure-library/closure/goog/structs/prioritypool_test.html +478 -0
- data/closure-library/closure/goog/structs/priorityqueue.js +64 -0
- data/closure-library/closure/goog/structs/priorityqueue_test.html +179 -0
- data/closure-library/closure/goog/structs/quadtree.js +571 -0
- data/closure-library/closure/goog/structs/quadtree_test.html +179 -0
- data/closure-library/closure/goog/structs/queue.js +157 -0
- data/closure-library/closure/goog/structs/queue_test.html +140 -0
- data/closure-library/closure/goog/structs/set.js +251 -0
- data/closure-library/closure/goog/structs/set_test.html +551 -0
- data/closure-library/closure/goog/structs/simplepool.js +203 -0
- data/closure-library/closure/goog/structs/stringset.js +404 -0
- data/closure-library/closure/goog/structs/stringset_test.html +251 -0
- data/closure-library/closure/goog/structs/structs.js +341 -0
- data/closure-library/closure/goog/structs/structs_test.html +1050 -0
- data/closure-library/closure/goog/structs/treenode.js +312 -0
- data/closure-library/closure/goog/structs/treenode_test.html +285 -0
- data/closure-library/closure/goog/structs/trie.js +368 -0
- data/closure-library/closure/goog/structs/trie_test.html +378 -0
- data/closure-library/closure/goog/style/cursor.js +125 -0
- data/closure-library/closure/goog/style/cursor_test.html +131 -0
- data/closure-library/closure/goog/style/style.js +1804 -0
- data/closure-library/closure/goog/style/style_quirks_test.html +1928 -0
- data/closure-library/closure/goog/style/style_test.html +2073 -0
- data/closure-library/closure/goog/style/style_test_iframe_quirk.html +29 -0
- data/closure-library/closure/goog/style/style_test_iframe_standard.html +30 -0
- data/closure-library/closure/goog/style/style_test_quirk.html +9 -0
- data/closure-library/closure/goog/style/style_test_standard.html +11 -0
- data/closure-library/closure/goog/testing/asserts.js +970 -0
- data/closure-library/closure/goog/testing/asserts_test.html +966 -0
- data/closure-library/closure/goog/testing/async/mockcontrol.js +174 -0
- data/closure-library/closure/goog/testing/async/mockcontrol_test.html +224 -0
- data/closure-library/closure/goog/testing/asynctestcase.js +812 -0
- data/closure-library/closure/goog/testing/asynctestcase_async_test.html +102 -0
- data/closure-library/closure/goog/testing/asynctestcase_noasync_test.html +98 -0
- data/closure-library/closure/goog/testing/benchmark.js +87 -0
- data/closure-library/closure/goog/testing/benchmarks/jsbinarysizebutton.js +64 -0
- data/closure-library/closure/goog/testing/benchmarks/jsbinarysizebutton_test.html +58 -0
- data/closure-library/closure/goog/testing/benchmarks/jsbinarysizetoolbar.js +66 -0
- data/closure-library/closure/goog/testing/benchmarks/jsbinarysizetoolbar_test.html +49 -0
- data/closure-library/closure/goog/testing/continuationtestcase.js +682 -0
- data/closure-library/closure/goog/testing/continuationtestcase_test.html +349 -0
- data/closure-library/closure/goog/testing/deferredtestcase.js +157 -0
- data/closure-library/closure/goog/testing/deferredtestcase_test.html +152 -0
- data/closure-library/closure/goog/testing/dom.js +596 -0
- data/closure-library/closure/goog/testing/dom_test.html +438 -0
- data/closure-library/closure/goog/testing/editor/dom.js +293 -0
- data/closure-library/closure/goog/testing/editor/dom_test.html +295 -0
- data/closure-library/closure/goog/testing/editor/fieldmock.js +90 -0
- data/closure-library/closure/goog/testing/editor/testhelper.js +168 -0
- data/closure-library/closure/goog/testing/editor/testhelper_test.html +176 -0
- data/closure-library/closure/goog/testing/events/eventobserver.js +85 -0
- data/closure-library/closure/goog/testing/events/eventobserver_test.html +70 -0
- data/closure-library/closure/goog/testing/events/events.js +540 -0
- data/closure-library/closure/goog/testing/events/events_test.html +434 -0
- data/closure-library/closure/goog/testing/events/matchers.js +41 -0
- data/closure-library/closure/goog/testing/events/matchers_test.html +40 -0
- data/closure-library/closure/goog/testing/expectedfailures.js +236 -0
- data/closure-library/closure/goog/testing/expectedfailures_test.html +122 -0
- data/closure-library/closure/goog/testing/fs/blob.js +74 -0
- data/closure-library/closure/goog/testing/fs/blob_test.html +53 -0
- data/closure-library/closure/goog/testing/fs/directoryentry_test.html +185 -0
- data/closure-library/closure/goog/testing/fs/entry.js +511 -0
- data/closure-library/closure/goog/testing/fs/entry_test.html +153 -0
- data/closure-library/closure/goog/testing/fs/file.js +51 -0
- data/closure-library/closure/goog/testing/fs/fileentry_test.html +54 -0
- data/closure-library/closure/goog/testing/fs/filesystem.js +64 -0
- data/closure-library/closure/goog/testing/fs/filewriter.js +314 -0
- data/closure-library/closure/goog/testing/fs/filewriter_test.html +248 -0
- data/closure-library/closure/goog/testing/fs/fs.js +146 -0
- data/closure-library/closure/goog/testing/fs/fs_test.html +54 -0
- data/closure-library/closure/goog/testing/fs/integration_test.html +219 -0
- data/closure-library/closure/goog/testing/functionmock.js +157 -0
- data/closure-library/closure/goog/testing/functionmock_test.html +357 -0
- data/closure-library/closure/goog/testing/graphics.js +64 -0
- data/closure-library/closure/goog/testing/jsunit.js +144 -0
- data/closure-library/closure/goog/testing/loosemock.js +240 -0
- data/closure-library/closure/goog/testing/loosemock_test.html +343 -0
- data/closure-library/closure/goog/testing/messaging/mockmessagechannel.js +77 -0
- data/closure-library/closure/goog/testing/messaging/mockmessageevent.js +100 -0
- data/closure-library/closure/goog/testing/mock.js +556 -0
- data/closure-library/closure/goog/testing/mock_test.html +208 -0
- data/closure-library/closure/goog/testing/mockclassfactory.js +580 -0
- data/closure-library/closure/goog/testing/mockclassfactory_test.html +241 -0
- data/closure-library/closure/goog/testing/mockclock.js +395 -0
- data/closure-library/closure/goog/testing/mockclock_test.html +413 -0
- data/closure-library/closure/goog/testing/mockcontrol.js +210 -0
- data/closure-library/closure/goog/testing/mockcontrol_test.html +127 -0
- data/closure-library/closure/goog/testing/mockinterface.js +45 -0
- data/closure-library/closure/goog/testing/mockmatchers.js +395 -0
- data/closure-library/closure/goog/testing/mockmatchers_test.html +388 -0
- data/closure-library/closure/goog/testing/mockrandom.js +128 -0
- data/closure-library/closure/goog/testing/mockrandom_test.html +56 -0
- data/closure-library/closure/goog/testing/mockrange.js +65 -0
- data/closure-library/closure/goog/testing/mockrange_test.html +41 -0
- data/closure-library/closure/goog/testing/mockuseragent.js +143 -0
- data/closure-library/closure/goog/testing/mockuseragent_test.html +59 -0
- data/closure-library/closure/goog/testing/multitestrunner.js +1442 -0
- data/closure-library/closure/goog/testing/net/xhrio.js +595 -0
- data/closure-library/closure/goog/testing/net/xhrio_test.html +321 -0
- data/closure-library/closure/goog/testing/objectpropertystring.js +67 -0
- data/closure-library/closure/goog/testing/performancetable.css +46 -0
- data/closure-library/closure/goog/testing/performancetable.js +162 -0
- data/closure-library/closure/goog/testing/performancetimer.js +166 -0
- data/closure-library/closure/goog/testing/performancetimer_test.html +107 -0
- data/closure-library/closure/goog/testing/propertyreplacer.js +243 -0
- data/closure-library/closure/goog/testing/propertyreplacer_test.html +368 -0
- data/closure-library/closure/goog/testing/pseudorandom.js +162 -0
- data/closure-library/closure/goog/testing/pseudorandom_test.html +98 -0
- data/closure-library/closure/goog/testing/recordfunction.js +194 -0
- data/closure-library/closure/goog/testing/recordfunction_test.html +147 -0
- data/closure-library/closure/goog/testing/singleton.js +82 -0
- data/closure-library/closure/goog/testing/singleton_test.html +39 -0
- data/closure-library/closure/goog/testing/stacktrace.js +470 -0
- data/closure-library/closure/goog/testing/stacktrace_test.html +229 -0
- data/closure-library/closure/goog/testing/strictmock.js +124 -0
- data/closure-library/closure/goog/testing/strictmock_test.html +368 -0
- data/closure-library/closure/goog/testing/style/layoutasserts.js +368 -0
- data/closure-library/closure/goog/testing/style/layoutasserts_test.html +269 -0
- data/closure-library/closure/goog/testing/testcase.js +1053 -0
- data/closure-library/closure/goog/testing/testqueue.js +66 -0
- data/closure-library/closure/goog/testing/testrunner.js +391 -0
- data/closure-library/closure/goog/testing/ui/rendererasserts.js +50 -0
- data/closure-library/closure/goog/testing/ui/rendererasserts_test.html +51 -0
- data/closure-library/closure/goog/testing/ui/rendererharness.js +175 -0
- data/closure-library/closure/goog/testing/ui/style.js +137 -0
- data/closure-library/closure/goog/testing/ui/style_reference.html +27 -0
- data/closure-library/closure/goog/testing/ui/style_test.html +130 -0
- data/closure-library/closure/goog/timer/timer.js +285 -0
- data/closure-library/closure/goog/timer/timer_test.html +118 -0
- data/closure-library/closure/goog/tweak/entries.js +990 -0
- data/closure-library/closure/goog/tweak/entries_test.html +94 -0
- data/closure-library/closure/goog/tweak/registry.js +310 -0
- data/closure-library/closure/goog/tweak/registry_test.html +144 -0
- data/closure-library/closure/goog/tweak/testhelpers.js +111 -0
- data/closure-library/closure/goog/tweak/tweak.js +318 -0
- data/closure-library/closure/goog/tweak/tweakui.js +817 -0
- data/closure-library/closure/goog/tweak/tweakui_test.html +280 -0
- data/closure-library/closure/goog/ui/abstractspellchecker.js +1069 -0
- data/closure-library/closure/goog/ui/activitymonitor.js +286 -0
- data/closure-library/closure/goog/ui/activitymonitor_test.html +44 -0
- data/closure-library/closure/goog/ui/advancedtooltip.js +369 -0
- data/closure-library/closure/goog/ui/advancedtooltip_test.html +274 -0
- data/closure-library/closure/goog/ui/animatedzippy.js +190 -0
- data/closure-library/closure/goog/ui/attachablemenu.js +464 -0
- data/closure-library/closure/goog/ui/autocomplete/arraymatcher.js +156 -0
- data/closure-library/closure/goog/ui/autocomplete/arraymatcher_test.html +130 -0
- data/closure-library/closure/goog/ui/autocomplete/autocomplete.js +627 -0
- data/closure-library/closure/goog/ui/autocomplete/autocomplete_test.html +537 -0
- data/closure-library/closure/goog/ui/autocomplete/basic.js +53 -0
- data/closure-library/closure/goog/ui/autocomplete/basic_test.html +204 -0
- data/closure-library/closure/goog/ui/autocomplete/inputhandler.js +1209 -0
- data/closure-library/closure/goog/ui/autocomplete/inputhandler_test.html +555 -0
- data/closure-library/closure/goog/ui/autocomplete/remote.js +117 -0
- data/closure-library/closure/goog/ui/autocomplete/remotearraymatcher.js +273 -0
- data/closure-library/closure/goog/ui/autocomplete/remotearraymatcher_test.html +73 -0
- data/closure-library/closure/goog/ui/autocomplete/renderer.js +852 -0
- data/closure-library/closure/goog/ui/autocomplete/renderer_test.html +386 -0
- data/closure-library/closure/goog/ui/autocomplete/richinputhandler.js +59 -0
- data/closure-library/closure/goog/ui/autocomplete/richremote.js +108 -0
- data/closure-library/closure/goog/ui/autocomplete/richremotearraymatcher.js +126 -0
- data/closure-library/closure/goog/ui/basicmenu.js +930 -0
- data/closure-library/closure/goog/ui/bidiinput.js +164 -0
- data/closure-library/closure/goog/ui/bubble.js +475 -0
- data/closure-library/closure/goog/ui/button.js +208 -0
- data/closure-library/closure/goog/ui/button_test.html +257 -0
- data/closure-library/closure/goog/ui/buttonrenderer.js +205 -0
- data/closure-library/closure/goog/ui/buttonrenderer_test.html +190 -0
- data/closure-library/closure/goog/ui/buttonside.js +40 -0
- data/closure-library/closure/goog/ui/cccbutton.js +281 -0
- data/closure-library/closure/goog/ui/charcounter.js +200 -0
- data/closure-library/closure/goog/ui/charpicker.js +807 -0
- data/closure-library/closure/goog/ui/checkbox.js +303 -0
- data/closure-library/closure/goog/ui/checkbox_test.html +224 -0
- data/closure-library/closure/goog/ui/checkboxmenuitem.js +53 -0
- data/closure-library/closure/goog/ui/colorbutton.js +58 -0
- data/closure-library/closure/goog/ui/colorbutton_test.html +70 -0
- data/closure-library/closure/goog/ui/colorbuttonrenderer.js +72 -0
- data/closure-library/closure/goog/ui/colormenubutton.js +213 -0
- data/closure-library/closure/goog/ui/colormenubuttonrenderer.js +144 -0
- data/closure-library/closure/goog/ui/colormenubuttonrenderer_test.html +88 -0
- data/closure-library/closure/goog/ui/colorpalette.js +162 -0
- data/closure-library/closure/goog/ui/colorpalette_test.html +169 -0
- data/closure-library/closure/goog/ui/colorpicker.js +344 -0
- data/closure-library/closure/goog/ui/colorsplitbehavior.js +61 -0
- data/closure-library/closure/goog/ui/combobox.js +894 -0
- data/closure-library/closure/goog/ui/combobox_test.html +208 -0
- data/closure-library/closure/goog/ui/component.js +1187 -0
- data/closure-library/closure/goog/ui/component_test.html +723 -0
- data/closure-library/closure/goog/ui/container.js +1296 -0
- data/closure-library/closure/goog/ui/container_test.html +450 -0
- data/closure-library/closure/goog/ui/containerrenderer.js +370 -0
- data/closure-library/closure/goog/ui/containerrenderer_test.html +227 -0
- data/closure-library/closure/goog/ui/containerscroller.js +221 -0
- data/closure-library/closure/goog/ui/containerscroller_test.html +213 -0
- data/closure-library/closure/goog/ui/control.js +1348 -0
- data/closure-library/closure/goog/ui/control_test.html +2128 -0
- data/closure-library/closure/goog/ui/controlcontent.js +28 -0
- data/closure-library/closure/goog/ui/controlrenderer.js +808 -0
- data/closure-library/closure/goog/ui/controlrenderer_test.html +840 -0
- data/closure-library/closure/goog/ui/cookieeditor.js +182 -0
- data/closure-library/closure/goog/ui/cookieeditor_test.html +102 -0
- data/closure-library/closure/goog/ui/css3buttonrenderer.js +147 -0
- data/closure-library/closure/goog/ui/css3menubuttonrenderer.js +144 -0
- data/closure-library/closure/goog/ui/cssnames.js +28 -0
- data/closure-library/closure/goog/ui/custombutton.js +58 -0
- data/closure-library/closure/goog/ui/custombuttonrenderer.js +254 -0
- data/closure-library/closure/goog/ui/customcolorpalette.js +137 -0
- data/closure-library/closure/goog/ui/customcolorpalette_test.html +60 -0
- data/closure-library/closure/goog/ui/datepicker.js +1339 -0
- data/closure-library/closure/goog/ui/datepicker_test.html +190 -0
- data/closure-library/closure/goog/ui/decorate.js +37 -0
- data/closure-library/closure/goog/ui/decorate_test.html +113 -0
- data/closure-library/closure/goog/ui/deprecatedbutton.js +381 -0
- data/closure-library/closure/goog/ui/dialog.js +1776 -0
- data/closure-library/closure/goog/ui/dialog_test.html +493 -0
- data/closure-library/closure/goog/ui/dimensionpicker.js +289 -0
- data/closure-library/closure/goog/ui/dimensionpicker_test.html +128 -0
- data/closure-library/closure/goog/ui/dimensionpickerrenderer.js +387 -0
- data/closure-library/closure/goog/ui/dragdropdetector.js +642 -0
- data/closure-library/closure/goog/ui/drilldownrow.js +494 -0
- data/closure-library/closure/goog/ui/editor/abstractdialog.js +443 -0
- data/closure-library/closure/goog/ui/editor/abstractdialog_test.html +467 -0
- data/closure-library/closure/goog/ui/editor/bubble.js +520 -0
- data/closure-library/closure/goog/ui/editor/bubble_test.html +264 -0
- data/closure-library/closure/goog/ui/editor/defaulttoolbar.js +1062 -0
- data/closure-library/closure/goog/ui/editor/linkdialog.js +833 -0
- data/closure-library/closure/goog/ui/editor/linkdialog_test.html +449 -0
- data/closure-library/closure/goog/ui/editor/messages.js +115 -0
- data/closure-library/closure/goog/ui/editor/tabpane.js +183 -0
- data/closure-library/closure/goog/ui/editor/toolbarcontroller.js +293 -0
- data/closure-library/closure/goog/ui/editor/toolbarfactory.js +437 -0
- data/closure-library/closure/goog/ui/editor/toolbarfactory_test.html +73 -0
- data/closure-library/closure/goog/ui/emoji/emoji.js +72 -0
- data/closure-library/closure/goog/ui/emoji/emojipalette.js +298 -0
- data/closure-library/closure/goog/ui/emoji/emojipaletterenderer.js +206 -0
- data/closure-library/closure/goog/ui/emoji/emojipicker.js +797 -0
- data/closure-library/closure/goog/ui/emoji/emojipicker_test.html +840 -0
- data/closure-library/closure/goog/ui/emoji/fast_nonprogressive_emojipicker_test.html +256 -0
- data/closure-library/closure/goog/ui/emoji/fast_progressive_emojipicker_test.html +256 -0
- data/closure-library/closure/goog/ui/emoji/popupemojipicker.js +410 -0
- data/closure-library/closure/goog/ui/emoji/popupemojipicker_test.html +80 -0
- data/closure-library/closure/goog/ui/emoji/progressiveemojipaletterenderer.js +97 -0
- data/closure-library/closure/goog/ui/emoji/spriteinfo.js +212 -0
- data/closure-library/closure/goog/ui/emoji/spriteinfo_test.html +51 -0
- data/closure-library/closure/goog/ui/filteredmenu.js +562 -0
- data/closure-library/closure/goog/ui/filteredmenu_test.html +299 -0
- data/closure-library/closure/goog/ui/filterobservingmenuitem.js +97 -0
- data/closure-library/closure/goog/ui/filterobservingmenuitemrenderer.js +60 -0
- data/closure-library/closure/goog/ui/flatbuttonrenderer.js +138 -0
- data/closure-library/closure/goog/ui/flatmenubuttonrenderer.js +199 -0
- data/closure-library/closure/goog/ui/formpost.js +109 -0
- data/closure-library/closure/goog/ui/formpost_test.html +109 -0
- data/closure-library/closure/goog/ui/gauge.js +999 -0
- data/closure-library/closure/goog/ui/gaugetheme.js +169 -0
- data/closure-library/closure/goog/ui/hovercard.js +447 -0
- data/closure-library/closure/goog/ui/hovercard_test.html +343 -0
- data/closure-library/closure/goog/ui/hsvapalette.js +311 -0
- data/closure-library/closure/goog/ui/hsvapalette_test.html +152 -0
- data/closure-library/closure/goog/ui/hsvpalette.js +470 -0
- data/closure-library/closure/goog/ui/hsvpalette_test.html +202 -0
- data/closure-library/closure/goog/ui/idgenerator.js +57 -0
- data/closure-library/closure/goog/ui/idletimer.js +299 -0
- data/closure-library/closure/goog/ui/idletimer_test.html +100 -0
- data/closure-library/closure/goog/ui/iframemask.js +256 -0
- data/closure-library/closure/goog/ui/iframemask_test.html +230 -0
- data/closure-library/closure/goog/ui/imagelessbuttonrenderer.js +204 -0
- data/closure-library/closure/goog/ui/imagelessmenubuttonrenderer.js +202 -0
- data/closure-library/closure/goog/ui/imagelessroundedcorner.js +971 -0
- data/closure-library/closure/goog/ui/inputdatepicker.js +306 -0
- data/closure-library/closure/goog/ui/inputdatepicker_test.html +109 -0
- data/closure-library/closure/goog/ui/itemevent.js +50 -0
- data/closure-library/closure/goog/ui/keyboardshortcuthandler.js +981 -0
- data/closure-library/closure/goog/ui/keyboardshortcuthandler_test.html +671 -0
- data/closure-library/closure/goog/ui/labelinput.js +439 -0
- data/closure-library/closure/goog/ui/linkbuttonrenderer.js +67 -0
- data/closure-library/closure/goog/ui/media/flashobject.js +629 -0
- data/closure-library/closure/goog/ui/media/flashobject_test.html +236 -0
- data/closure-library/closure/goog/ui/media/flickr.js +309 -0
- data/closure-library/closure/goog/ui/media/flickr_test.html +90 -0
- data/closure-library/closure/goog/ui/media/media.js +284 -0
- data/closure-library/closure/goog/ui/media/media_test.html +161 -0
- data/closure-library/closure/goog/ui/media/mediamodel.js +840 -0
- data/closure-library/closure/goog/ui/media/mp3.js +225 -0
- data/closure-library/closure/goog/ui/media/mp3_test.html +78 -0
- data/closure-library/closure/goog/ui/media/photo.js +139 -0
- data/closure-library/closure/goog/ui/media/photo_test.html +62 -0
- data/closure-library/closure/goog/ui/media/picasa.js +317 -0
- data/closure-library/closure/goog/ui/media/picasa_test.html +131 -0
- data/closure-library/closure/goog/ui/media/vimeo.js +264 -0
- data/closure-library/closure/goog/ui/media/vimeo_test.html +79 -0
- data/closure-library/closure/goog/ui/media/youtube.js +328 -0
- data/closure-library/closure/goog/ui/media/youtube_test.html +185 -0
- data/closure-library/closure/goog/ui/menu.js +435 -0
- data/closure-library/closure/goog/ui/menu_test.html +129 -0
- data/closure-library/closure/goog/ui/menubase.js +191 -0
- data/closure-library/closure/goog/ui/menubutton.js +809 -0
- data/closure-library/closure/goog/ui/menubutton_test.html +440 -0
- data/closure-library/closure/goog/ui/menubutton_test_frame.html +41 -0
- data/closure-library/closure/goog/ui/menubuttonrenderer.js +226 -0
- data/closure-library/closure/goog/ui/menubuttonrenderer_test.html +161 -0
- data/closure-library/closure/goog/ui/menuheader.js +62 -0
- data/closure-library/closure/goog/ui/menuheaderrenderer.js +55 -0
- data/closure-library/closure/goog/ui/menuitem.js +154 -0
- data/closure-library/closure/goog/ui/menuitem_test.html +506 -0
- data/closure-library/closure/goog/ui/menuitemrenderer.js +353 -0
- data/closure-library/closure/goog/ui/menuitemrenderer_test.html +190 -0
- data/closure-library/closure/goog/ui/menurenderer.js +118 -0
- data/closure-library/closure/goog/ui/menuseparator.js +51 -0
- data/closure-library/closure/goog/ui/menuseparatorrenderer.js +102 -0
- data/closure-library/closure/goog/ui/mockactivitymonitor.js +54 -0
- data/closure-library/closure/goog/ui/nativebuttonrenderer.js +205 -0
- data/closure-library/closure/goog/ui/nativebuttonrenderer_test.html +213 -0
- data/closure-library/closure/goog/ui/offlineinstalldialog.js +1086 -0
- data/closure-library/closure/goog/ui/offlinestatuscard.js +580 -0
- data/closure-library/closure/goog/ui/offlinestatuscomponent.js +545 -0
- data/closure-library/closure/goog/ui/option.js +67 -0
- data/closure-library/closure/goog/ui/palette.js +528 -0
- data/closure-library/closure/goog/ui/paletterenderer.js +318 -0
- data/closure-library/closure/goog/ui/plaintextspellchecker.js +668 -0
- data/closure-library/closure/goog/ui/plaintextspellchecker_test.html +240 -0
- data/closure-library/closure/goog/ui/popup.js +410 -0
- data/closure-library/closure/goog/ui/popup_test.html +137 -0
- data/closure-library/closure/goog/ui/popupbase.js +721 -0
- data/closure-library/closure/goog/ui/popupbase_test.html +186 -0
- data/closure-library/closure/goog/ui/popupcolorpicker.js +441 -0
- data/closure-library/closure/goog/ui/popupcolorpicker_test.html +71 -0
- data/closure-library/closure/goog/ui/popupdatepicker.js +273 -0
- data/closure-library/closure/goog/ui/popupmenu.js +539 -0
- data/closure-library/closure/goog/ui/popupmenu_test.html +197 -0
- data/closure-library/closure/goog/ui/progressbar.js +390 -0
- data/closure-library/closure/goog/ui/prompt.js +307 -0
- data/closure-library/closure/goog/ui/prompt_test.html +65 -0
- data/closure-library/closure/goog/ui/rangemodel.js +301 -0
- data/closure-library/closure/goog/ui/rangemodel_test.html +270 -0
- data/closure-library/closure/goog/ui/ratings.js +441 -0
- data/closure-library/closure/goog/ui/registry.js +166 -0
- data/closure-library/closure/goog/ui/registry_test.html +236 -0
- data/closure-library/closure/goog/ui/richtextspellchecker.js +600 -0
- data/closure-library/closure/goog/ui/richtextspellchecker_test.html +224 -0
- data/closure-library/closure/goog/ui/roundedcorners.js +694 -0
- data/closure-library/closure/goog/ui/roundedpanel.js +609 -0
- data/closure-library/closure/goog/ui/roundedpanel_test.html +57 -0
- data/closure-library/closure/goog/ui/roundedtabrenderer.js +196 -0
- data/closure-library/closure/goog/ui/scrollfloater.js +394 -0
- data/closure-library/closure/goog/ui/scrollfloater_test.html +46 -0
- data/closure-library/closure/goog/ui/select.js +397 -0
- data/closure-library/closure/goog/ui/select_test.html +152 -0
- data/closure-library/closure/goog/ui/selectionmenubutton.js +277 -0
- data/closure-library/closure/goog/ui/selectionmenubutton_test.html +237 -0
- data/closure-library/closure/goog/ui/selectionmodel.js +291 -0
- data/closure-library/closure/goog/ui/separator.js +74 -0
- data/closure-library/closure/goog/ui/serverchart.js +1791 -0
- data/closure-library/closure/goog/ui/serverchart_test.html +598 -0
- data/closure-library/closure/goog/ui/slider.js +125 -0
- data/closure-library/closure/goog/ui/sliderbase.js +1087 -0
- data/closure-library/closure/goog/ui/sliderbase_test.html +198 -0
- data/closure-library/closure/goog/ui/splitbehavior.js +348 -0
- data/closure-library/closure/goog/ui/splitbehavior_test.html +161 -0
- data/closure-library/closure/goog/ui/splitpane.js +844 -0
- data/closure-library/closure/goog/ui/splitpane_test.html +143 -0
- data/closure-library/closure/goog/ui/style/app/buttonrenderer.js +204 -0
- data/closure-library/closure/goog/ui/style/app/buttonrenderer_test.html +155 -0
- data/closure-library/closure/goog/ui/style/app/menubuttonrenderer.js +227 -0
- data/closure-library/closure/goog/ui/style/app/menubuttonrenderer_test.html +167 -0
- data/closure-library/closure/goog/ui/style/app/primaryactionbuttonrenderer.js +88 -0
- data/closure-library/closure/goog/ui/style/app/primaryactionbuttonrenderer_test.html +76 -0
- data/closure-library/closure/goog/ui/submenu.js +660 -0
- data/closure-library/closure/goog/ui/submenu_test.html +446 -0
- data/closure-library/closure/goog/ui/submenurenderer.js +188 -0
- data/closure-library/closure/goog/ui/tab.js +102 -0
- data/closure-library/closure/goog/ui/tab_test.html +61 -0
- data/closure-library/closure/goog/ui/tabbar.js +393 -0
- data/closure-library/closure/goog/ui/tabbar_test.html +611 -0
- data/closure-library/closure/goog/ui/tabbarrenderer.js +173 -0
- data/closure-library/closure/goog/ui/tabbarrenderer_test.html +137 -0
- data/closure-library/closure/goog/ui/tablesorter.js +304 -0
- data/closure-library/closure/goog/ui/tablesorter_test.html +127 -0
- data/closure-library/closure/goog/ui/tabpane.js +674 -0
- data/closure-library/closure/goog/ui/tabpane_test.html +107 -0
- data/closure-library/closure/goog/ui/tabrenderer.js +152 -0
- data/closure-library/closure/goog/ui/tabrenderer_test.html +132 -0
- data/closure-library/closure/goog/ui/textarea.js +573 -0
- data/closure-library/closure/goog/ui/textarea_test.html +305 -0
- data/closure-library/closure/goog/ui/textarearenderer.js +167 -0
- data/closure-library/closure/goog/ui/togglebutton.js +58 -0
- data/closure-library/closure/goog/ui/toolbar.js +45 -0
- data/closure-library/closure/goog/ui/toolbarbutton.js +54 -0
- data/closure-library/closure/goog/ui/toolbarbuttonrenderer.js +55 -0
- data/closure-library/closure/goog/ui/toolbarcolormenubutton.js +57 -0
- data/closure-library/closure/goog/ui/toolbarcolormenubuttonrenderer.js +95 -0
- data/closure-library/closure/goog/ui/toolbarcolormenubuttonrenderer_test.html +66 -0
- data/closure-library/closure/goog/ui/toolbarmenubutton.js +56 -0
- data/closure-library/closure/goog/ui/toolbarmenubuttonrenderer.js +55 -0
- data/closure-library/closure/goog/ui/toolbarrenderer.js +95 -0
- data/closure-library/closure/goog/ui/toolbarselect.js +55 -0
- data/closure-library/closure/goog/ui/toolbarseparator.js +51 -0
- data/closure-library/closure/goog/ui/toolbarseparatorrenderer.js +87 -0
- data/closure-library/closure/goog/ui/toolbartogglebutton.js +53 -0
- data/closure-library/closure/goog/ui/tooltip.js +975 -0
- data/closure-library/closure/goog/ui/tooltip_test.html +351 -0
- data/closure-library/closure/goog/ui/tree/basenode.js +1457 -0
- data/closure-library/closure/goog/ui/tree/basenode_test.html +218 -0
- data/closure-library/closure/goog/ui/tree/treecontrol.js +656 -0
- data/closure-library/closure/goog/ui/tree/treecontrol_test.html +113 -0
- data/closure-library/closure/goog/ui/tree/treenode.js +102 -0
- data/closure-library/closure/goog/ui/tree/typeahead.js +332 -0
- data/closure-library/closure/goog/ui/tree/typeahead_test.html +133 -0
- data/closure-library/closure/goog/ui/tristatemenuitem.js +185 -0
- data/closure-library/closure/goog/ui/tristatemenuitemrenderer.js +86 -0
- data/closure-library/closure/goog/ui/twothumbslider.js +134 -0
- data/closure-library/closure/goog/ui/zippy.js +277 -0
- data/closure-library/closure/goog/ui/zippy_test.html +223 -0
- data/closure-library/closure/goog/uri/uri.js +1595 -0
- data/closure-library/closure/goog/uri/uri_test.html +837 -0
- data/closure-library/closure/goog/uri/utils.js +972 -0
- data/closure-library/closure/goog/uri/utils_test.html +521 -0
- data/closure-library/closure/goog/useragent/adobereader.js +90 -0
- data/closure-library/closure/goog/useragent/adobereader_test.html +34 -0
- data/closure-library/closure/goog/useragent/flash.js +113 -0
- data/closure-library/closure/goog/useragent/flash_test.html +34 -0
- data/closure-library/closure/goog/useragent/iphoto.js +86 -0
- data/closure-library/closure/goog/useragent/jscript.js +94 -0
- data/closure-library/closure/goog/useragent/jscript_test.html +65 -0
- data/closure-library/closure/goog/useragent/picasa.js +111 -0
- data/closure-library/closure/goog/useragent/platform.js +70 -0
- data/closure-library/closure/goog/useragent/platform_test.html +108 -0
- data/closure-library/closure/goog/useragent/product.js +253 -0
- data/closure-library/closure/goog/useragent/product_isversion.js +99 -0
- data/closure-library/closure/goog/useragent/product_test.html +322 -0
- data/closure-library/closure/goog/useragent/useragent.js +464 -0
- data/closure-library/closure/goog/useragent/useragent_test.html +290 -0
- data/closure-library/closure/goog/window/window.js +206 -0
- data/closure-library/closure/goog/window/window_test.html +185 -0
- data/closure-library/third_party/closure/goog/base.js +2 -0
- data/closure-library/third_party/closure/goog/caja/string/html/htmlparser.js +611 -0
- data/closure-library/third_party/closure/goog/caja/string/html/htmlsanitizer.js +605 -0
- data/closure-library/third_party/closure/goog/deps.js +26 -0
- data/closure-library/third_party/closure/goog/dojo/dom/query.js +1532 -0
- data/closure-library/third_party/closure/goog/dojo/dom/query_test.html +63 -0
- data/closure-library/third_party/closure/goog/dojo/dom/query_test.js +160 -0
- data/closure-library/third_party/closure/goog/jpeg_encoder/jpeg_encoder_basic.js +751 -0
- data/closure-library/third_party/closure/goog/loremipsum/text/loremipsum.js +712 -0
- data/closure-library/third_party/closure/goog/loremipsum/text/loremipsum_test.html +61 -0
- data/closure-library/third_party/closure/goog/mochikit/async/deferred.js +530 -0
- data/closure-library/third_party/closure/goog/mochikit/async/deferred_test.html +627 -0
- data/closure-library/third_party/closure/goog/mochikit/async/deferredlist.js +199 -0
- data/closure-library/third_party/closure/goog/mochikit/async/deferredlist_test.html +426 -0
- data/closure-library/third_party/closure/goog/osapi/osapi.js +91 -0
- data/closure-library/third_party/closure/goog/silverlight/AppManifest.xml +6 -0
- data/closure-library/third_party/closure/goog/silverlight/AssemblyInfo.cs +35 -0
- data/closure-library/third_party/closure/goog/silverlight/ClipboardButton.xaml +9 -0
- data/closure-library/third_party/closure/goog/silverlight/ClipboardButton.xaml.cs +74 -0
- data/closure-library/third_party/closure/goog/silverlight/ClipboardButtonApp.xaml +8 -0
- data/closure-library/third_party/closure/goog/silverlight/ClipboardButtonApp.xaml.cs +75 -0
- data/closure-library/third_party/closure/goog/silverlight/ClosureClipboardButton.csproj +108 -0
- data/closure-library/third_party/closure/goog/silverlight/ClosureClipboardButton.csproj.user +29 -0
- data/closure-library/third_party/closure/goog/silverlight/clipboardbutton.js +279 -0
- data/closure-library/third_party/closure/goog/silverlight/silverlight.js +758 -0
- data/closure-library/third_party/closure/goog/silverlight/supporteduseragent.js +138 -0
- data/closure-library/third_party/closure/goog/silverlight/xap_files +0 -0
- data/closure-templates/COPYING +202 -0
- data/closure-templates/README +47 -0
- data/closure-templates/SoyToJsSrcCompiler.jar +0 -0
- data/closure-templates/soyutils.js +880 -0
- data/closure-templates/soyutils_usegoog.js +308 -0
- data/closure.gemspec +20 -0
- data/config.ru +40 -0
- data/java_src/ClosureScript.java +89 -0
- data/java_src/make.rb +19 -0
- data/lib/closure/beanshell.rb +80 -0
- data/lib/closure/compiler.rb +184 -0
- data/lib/closure/file_response.rb +90 -0
- data/lib/closure/goog.rb +143 -0
- data/lib/closure/middleware.rb +43 -0
- data/lib/closure/sass.rb +56 -0
- data/lib/closure/script.rb +139 -0
- data/lib/closure/server.rb +83 -0
- data/lib/closure/sources.rb +310 -0
- data/lib/closure/templates.rb +156 -0
- data/lib/closure/version.rb +20 -0
- data/lib/closure.jar +0 -0
- data/lib/closure.rb +134 -0
- data/scripts/demos/compile.js.erb +8 -0
- data/scripts/demos/compile.out +1 -0
- data/scripts/demos/compiler.haml +17 -0
- data/scripts/demos/compiler.js +12 -0
- data/scripts/demos/deps.js.erb +1 -0
- data/scripts/demos/externs.haml +16 -0
- data/scripts/demos/externs.js.erb +8 -0
- data/scripts/demos/externs.out +1 -0
- data/scripts/demos/externs_jquery.externs +849 -0
- data/scripts/demos/externs_jquery.js +167 -0
- data/scripts/demos/externs_jquerytest.js +11 -0
- data/scripts/demos/helloworld.haml +15 -0
- data/scripts/demos/helloworld.js +58 -0
- data/scripts/demos/helloworld.soy +45 -0
- data/scripts/demos/index.haml +21 -0
- data/scripts/demos/rails_ujs.haml +24 -0
- data/scripts/examples/rails/ujs.js +136 -0
- data/scripts/favicon.ico +0 -0
- data/scripts/fixtures/_partial.haml +2 -0
- data/scripts/fixtures/erb.html.erb +8 -0
- data/scripts/fixtures/haml.haml +6 -0
- data/scripts/fixtures/html.html +9 -0
- data/scripts/fixtures/route_js.js.erb +1 -0
- data/scripts/index.haml +14 -0
- data/test/beanshell_test.rb +22 -0
- data/test/server_test.rb +67 -0
- data/test/sources_test.rb +41 -0
- data/test/test_helper.rb +12 -0
- metadata +1577 -0
|
@@ -0,0 +1,1776 @@
|
|
|
1
|
+
// Copyright 2006 The Closure Library Authors. All Rights Reserved.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS-IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @fileoverview Class for showing simple modal dialog boxes.
|
|
17
|
+
*
|
|
18
|
+
* TODO(user):
|
|
19
|
+
* * Standardize CSS class names with other components
|
|
20
|
+
* * Add functionality to "host" other components in content area
|
|
21
|
+
* * Abstract out ButtonSet and make it more general
|
|
22
|
+
* @see ../demos/dialog.html
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
goog.provide('goog.ui.Dialog');
|
|
26
|
+
goog.provide('goog.ui.Dialog.ButtonSet');
|
|
27
|
+
goog.provide('goog.ui.Dialog.ButtonSet.DefaultButtons');
|
|
28
|
+
goog.provide('goog.ui.Dialog.DefaultButtonCaptions');
|
|
29
|
+
goog.provide('goog.ui.Dialog.DefaultButtonKeys');
|
|
30
|
+
goog.provide('goog.ui.Dialog.Event');
|
|
31
|
+
goog.provide('goog.ui.Dialog.EventType');
|
|
32
|
+
|
|
33
|
+
goog.require('goog.Timer');
|
|
34
|
+
goog.require('goog.dom');
|
|
35
|
+
goog.require('goog.dom.NodeType');
|
|
36
|
+
goog.require('goog.dom.TagName');
|
|
37
|
+
goog.require('goog.dom.a11y');
|
|
38
|
+
goog.require('goog.dom.classes');
|
|
39
|
+
goog.require('goog.dom.iframe');
|
|
40
|
+
goog.require('goog.events');
|
|
41
|
+
goog.require('goog.events.EventType');
|
|
42
|
+
goog.require('goog.events.FocusHandler');
|
|
43
|
+
goog.require('goog.events.KeyCodes');
|
|
44
|
+
goog.require('goog.fx.Dragger');
|
|
45
|
+
goog.require('goog.math.Rect');
|
|
46
|
+
goog.require('goog.structs');
|
|
47
|
+
goog.require('goog.structs.Map');
|
|
48
|
+
goog.require('goog.style');
|
|
49
|
+
goog.require('goog.ui.Component');
|
|
50
|
+
goog.require('goog.userAgent');
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Class for showing simple dialog boxes.
|
|
56
|
+
* The Html structure of the dialog box is:
|
|
57
|
+
* <pre>
|
|
58
|
+
* Element Function Class-name, modal-dialog = default
|
|
59
|
+
* ----------------------------------------------------------------------------
|
|
60
|
+
* - iframe Iframe mask modal-dialog-bg
|
|
61
|
+
* - div Background mask modal-dialog-bg
|
|
62
|
+
* - div Dialog area modal-dialog
|
|
63
|
+
* - div Title bar modal-dialog-title
|
|
64
|
+
* - span modal-dialog-title-text
|
|
65
|
+
* - text Title text N/A
|
|
66
|
+
* - span modal-dialog-title-close
|
|
67
|
+
* - ?? Close box N/A
|
|
68
|
+
* - div Content area modal-dialog-content
|
|
69
|
+
* - ?? User specified content N/A
|
|
70
|
+
* - div Button area modal-dialog-buttons
|
|
71
|
+
* - button N/A
|
|
72
|
+
* - button
|
|
73
|
+
* - ...
|
|
74
|
+
* </pre>
|
|
75
|
+
* @constructor
|
|
76
|
+
* @param {string=} opt_class CSS class name for the dialog element, also used
|
|
77
|
+
* as a class name prefix for related elements; defaults to modal-dialog.
|
|
78
|
+
* @param {boolean=} opt_useIframeMask Work around windowed controls z-index
|
|
79
|
+
* issue by using an iframe instead of a div for bg element.
|
|
80
|
+
* @param {goog.dom.DomHelper=} opt_domHelper Optional DOM helper; see {@link
|
|
81
|
+
* goog.ui.Component} for semantics.
|
|
82
|
+
* @extends {goog.ui.Component}
|
|
83
|
+
*/
|
|
84
|
+
goog.ui.Dialog = function(opt_class, opt_useIframeMask, opt_domHelper) {
|
|
85
|
+
goog.ui.Component.call(this, opt_domHelper);
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* CSS class name for the dialog element, also used as a class name prefix for
|
|
89
|
+
* related elements. Defaults to goog.getCssName('modal-dialog').
|
|
90
|
+
* @type {string}
|
|
91
|
+
* @private
|
|
92
|
+
*/
|
|
93
|
+
this.class_ = opt_class || goog.getCssName('modal-dialog');
|
|
94
|
+
|
|
95
|
+
this.useIframeMask_ = !!opt_useIframeMask;
|
|
96
|
+
|
|
97
|
+
// Set the default button set to show ok and cancel
|
|
98
|
+
this.buttons_ = goog.ui.Dialog.ButtonSet.createOkCancel();
|
|
99
|
+
};
|
|
100
|
+
goog.inherits(goog.ui.Dialog, goog.ui.Component);
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Focus handler. It will be initialized in enterDocument.
|
|
105
|
+
* @type {goog.events.FocusHandler}
|
|
106
|
+
* @private
|
|
107
|
+
*/
|
|
108
|
+
goog.ui.Dialog.prototype.focusHandler_ = null;
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Whether the escape key closes this dialog.
|
|
113
|
+
* @type {boolean}
|
|
114
|
+
* @private
|
|
115
|
+
*/
|
|
116
|
+
goog.ui.Dialog.prototype.escapeToCancel_ = true;
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Whether this dialog should include a title close button.
|
|
121
|
+
* @type {boolean}
|
|
122
|
+
* @private
|
|
123
|
+
*/
|
|
124
|
+
goog.ui.Dialog.prototype.hasTitleCloseButton_ = true;
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Whether the dialog should use an iframe as the background element to work
|
|
129
|
+
* around z-order issues. Defaults to false.
|
|
130
|
+
* @type {boolean}
|
|
131
|
+
* @private
|
|
132
|
+
*/
|
|
133
|
+
goog.ui.Dialog.prototype.useIframeMask_ = false;
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Whether the dialog is modal. Defaults to true.
|
|
138
|
+
* @type {boolean}
|
|
139
|
+
* @private
|
|
140
|
+
*/
|
|
141
|
+
goog.ui.Dialog.prototype.modal_ = true;
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Whether the dialog is draggable. Defaults to true.
|
|
146
|
+
* @type {boolean}
|
|
147
|
+
* @private
|
|
148
|
+
*/
|
|
149
|
+
goog.ui.Dialog.prototype.draggable_ = true;
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Opacity for background mask. Defaults to 50%.
|
|
154
|
+
* @type {number}
|
|
155
|
+
* @private
|
|
156
|
+
*/
|
|
157
|
+
goog.ui.Dialog.prototype.backgroundElementOpacity_ = 0.50;
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Dialog's title.
|
|
162
|
+
* @type {string}
|
|
163
|
+
* @private
|
|
164
|
+
*/
|
|
165
|
+
goog.ui.Dialog.prototype.title_ = '';
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Dialog's content (HTML).
|
|
170
|
+
* @type {string}
|
|
171
|
+
* @private
|
|
172
|
+
*/
|
|
173
|
+
goog.ui.Dialog.prototype.content_ = '';
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Button set. Default: Ok/Cancel.
|
|
178
|
+
* @type {goog.ui.Dialog.ButtonSet?}
|
|
179
|
+
* @private
|
|
180
|
+
*/
|
|
181
|
+
goog.ui.Dialog.prototype.buttons_ = null;
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Dragger.
|
|
186
|
+
* @type {?goog.fx.Dragger}
|
|
187
|
+
* @private
|
|
188
|
+
*/
|
|
189
|
+
goog.ui.Dialog.prototype.dragger_ = null;
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Whether dialog is visible.
|
|
194
|
+
* @type {boolean}
|
|
195
|
+
* @private
|
|
196
|
+
*/
|
|
197
|
+
goog.ui.Dialog.prototype.visible_ = false;
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Whether the dialog should be disposed when it is hidden.
|
|
202
|
+
* @type {boolean}
|
|
203
|
+
* @private
|
|
204
|
+
*/
|
|
205
|
+
goog.ui.Dialog.prototype.disposeOnHide_ = false;
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Element for the background which obscures the UI and blocks events.
|
|
210
|
+
* @type {Element}
|
|
211
|
+
* @private
|
|
212
|
+
*/
|
|
213
|
+
goog.ui.Dialog.prototype.bgEl_ = null;
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
/**
|
|
217
|
+
* Iframe element that is only used for IE as a workaround to keep select-type
|
|
218
|
+
* elements from burning through background.
|
|
219
|
+
* @type {Element}
|
|
220
|
+
* @private
|
|
221
|
+
*/
|
|
222
|
+
goog.ui.Dialog.prototype.bgIframeEl_ = null;
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Element for the title bar.
|
|
227
|
+
* @type {Element}
|
|
228
|
+
* @private
|
|
229
|
+
*/
|
|
230
|
+
goog.ui.Dialog.prototype.titleEl_ = null;
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Element for the text area of the title bar.
|
|
235
|
+
* @type {Element}
|
|
236
|
+
* @private
|
|
237
|
+
*/
|
|
238
|
+
goog.ui.Dialog.prototype.titleTextEl_ = null;
|
|
239
|
+
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Id of element for the text area of the title bar.
|
|
243
|
+
* @type {?string}
|
|
244
|
+
* @private
|
|
245
|
+
*/
|
|
246
|
+
goog.ui.Dialog.prototype.titleId_ = null;
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Element for the close box area of the title bar.
|
|
251
|
+
* @type {Element}
|
|
252
|
+
* @private
|
|
253
|
+
*/
|
|
254
|
+
goog.ui.Dialog.prototype.titleCloseEl_ = null;
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Element for the content area.
|
|
259
|
+
* @type {Element}
|
|
260
|
+
* @private
|
|
261
|
+
*/
|
|
262
|
+
goog.ui.Dialog.prototype.contentEl_ = null;
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* Element for the button bar.
|
|
267
|
+
* @type {Element}
|
|
268
|
+
* @private
|
|
269
|
+
*/
|
|
270
|
+
goog.ui.Dialog.prototype.buttonEl_ = null;
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
/**
|
|
274
|
+
* Sets the title.
|
|
275
|
+
* @param {string} title The title text.
|
|
276
|
+
*/
|
|
277
|
+
goog.ui.Dialog.prototype.setTitle = function(title) {
|
|
278
|
+
this.title_ = title;
|
|
279
|
+
if (this.titleTextEl_) {
|
|
280
|
+
goog.dom.setTextContent(this.titleTextEl_, title);
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
/**
|
|
286
|
+
* Gets the title.
|
|
287
|
+
* @return {string} The title.
|
|
288
|
+
*/
|
|
289
|
+
goog.ui.Dialog.prototype.getTitle = function() {
|
|
290
|
+
return this.title_;
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Allows arbitrary HTML to be set in the content element.
|
|
296
|
+
* @param {string} html Content HTML.
|
|
297
|
+
*/
|
|
298
|
+
goog.ui.Dialog.prototype.setContent = function(html) {
|
|
299
|
+
this.content_ = html;
|
|
300
|
+
if (this.contentEl_) {
|
|
301
|
+
this.contentEl_.innerHTML = html;
|
|
302
|
+
}
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Gets the content HTML of the content element.
|
|
308
|
+
* @return {string} Content HTML.
|
|
309
|
+
*/
|
|
310
|
+
goog.ui.Dialog.prototype.getContent = function() {
|
|
311
|
+
return this.content_;
|
|
312
|
+
};
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Renders if the DOM is not created.
|
|
317
|
+
* @private
|
|
318
|
+
*/
|
|
319
|
+
goog.ui.Dialog.prototype.renderIfNoDom_ = function() {
|
|
320
|
+
if (!this.getElement()) {
|
|
321
|
+
// TODO(user): Ideally we'd only create the DOM, but many applications
|
|
322
|
+
// are requiring this behavior. Eventually, it would be best if the
|
|
323
|
+
// element getters could return null if the elements have not been
|
|
324
|
+
// created.
|
|
325
|
+
this.render();
|
|
326
|
+
}
|
|
327
|
+
};
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Returns the content element so that more complicated things can be done with
|
|
332
|
+
* the content area. Renders if the DOM is not yet created. Overrides
|
|
333
|
+
* {@link goog.ui.Component#getContentElement}.
|
|
334
|
+
* @return {Element} The content element.
|
|
335
|
+
*/
|
|
336
|
+
goog.ui.Dialog.prototype.getContentElement = function() {
|
|
337
|
+
this.renderIfNoDom_();
|
|
338
|
+
return this.contentEl_;
|
|
339
|
+
};
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* Returns the title element so that more complicated things can be done with
|
|
344
|
+
* the title. Renders if the DOM is not yet created.
|
|
345
|
+
* @return {Element} The title element.
|
|
346
|
+
*/
|
|
347
|
+
goog.ui.Dialog.prototype.getTitleElement = function() {
|
|
348
|
+
this.renderIfNoDom_();
|
|
349
|
+
return this.titleEl_;
|
|
350
|
+
};
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
/**
|
|
354
|
+
* Returns the title text element so that more complicated things can be done
|
|
355
|
+
* with the text of the title. Renders if the DOM is not yet created.
|
|
356
|
+
* @return {Element} The title text element.
|
|
357
|
+
*/
|
|
358
|
+
goog.ui.Dialog.prototype.getTitleTextElement = function() {
|
|
359
|
+
this.renderIfNoDom_();
|
|
360
|
+
return this.titleTextEl_;
|
|
361
|
+
};
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* Returns the title close element so that more complicated things can be done
|
|
366
|
+
* with the close area of the title. Renders if the DOM is not yet created.
|
|
367
|
+
* @return {Element} The close box.
|
|
368
|
+
*/
|
|
369
|
+
goog.ui.Dialog.prototype.getTitleCloseElement = function() {
|
|
370
|
+
this.renderIfNoDom_();
|
|
371
|
+
return this.titleCloseEl_;
|
|
372
|
+
};
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* Returns the button element so that more complicated things can be done with
|
|
377
|
+
* the button area. Renders if the DOM is not yet created.
|
|
378
|
+
* @return {Element} The button container element.
|
|
379
|
+
*/
|
|
380
|
+
goog.ui.Dialog.prototype.getButtonElement = function() {
|
|
381
|
+
this.renderIfNoDom_();
|
|
382
|
+
return this.buttonEl_;
|
|
383
|
+
};
|
|
384
|
+
|
|
385
|
+
|
|
386
|
+
/**
|
|
387
|
+
* Returns the dialog element so that more complicated things can be done with
|
|
388
|
+
* the dialog box. Renders if the DOM is not yet created.
|
|
389
|
+
* @return {Element} The dialog element.
|
|
390
|
+
*/
|
|
391
|
+
goog.ui.Dialog.prototype.getDialogElement = function() {
|
|
392
|
+
this.renderIfNoDom_();
|
|
393
|
+
return this.getElement();
|
|
394
|
+
};
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* Returns the background mask element so that more complicated things can be
|
|
399
|
+
* done with the background region. Renders if the DOM is not yet created.
|
|
400
|
+
* @return {Element} The background mask element.
|
|
401
|
+
*/
|
|
402
|
+
goog.ui.Dialog.prototype.getBackgroundElement = function() {
|
|
403
|
+
this.renderIfNoDom_();
|
|
404
|
+
return this.bgEl_;
|
|
405
|
+
};
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
/**
|
|
409
|
+
* Gets the opacity of the background mask.
|
|
410
|
+
* @return {number} Background mask opacity.
|
|
411
|
+
*/
|
|
412
|
+
goog.ui.Dialog.prototype.getBackgroundElementOpacity = function() {
|
|
413
|
+
return this.backgroundElementOpacity_;
|
|
414
|
+
};
|
|
415
|
+
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* Sets the opacity of the background mask.
|
|
419
|
+
* @param {number} opacity Background mask opacity.
|
|
420
|
+
*/
|
|
421
|
+
goog.ui.Dialog.prototype.setBackgroundElementOpacity = function(opacity) {
|
|
422
|
+
this.backgroundElementOpacity_ = opacity;
|
|
423
|
+
|
|
424
|
+
if (this.bgEl_) {
|
|
425
|
+
goog.style.setOpacity(this.bgEl_, this.backgroundElementOpacity_);
|
|
426
|
+
}
|
|
427
|
+
};
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
/**
|
|
431
|
+
* Sets the modal property of the dialog. In case the dialog is already
|
|
432
|
+
* inDocument, renders the modal background elements according to the specified
|
|
433
|
+
* modal parameter.
|
|
434
|
+
*
|
|
435
|
+
* Note that non-modal dialogs cannot use an iframe mask.
|
|
436
|
+
*
|
|
437
|
+
* @param {boolean} modal Whether the dialog is modal.
|
|
438
|
+
*/
|
|
439
|
+
goog.ui.Dialog.prototype.setModal = function(modal) {
|
|
440
|
+
this.modal_ = modal;
|
|
441
|
+
this.manageBackgroundDom_();
|
|
442
|
+
var dom = this.getDomHelper();
|
|
443
|
+
if (this.isInDocument() && modal && this.isVisible()) {
|
|
444
|
+
// Insert the bg elements before the dialog so that they don't block
|
|
445
|
+
// the dialog itself.
|
|
446
|
+
if (this.bgIframeEl_) {
|
|
447
|
+
dom.insertSiblingBefore(this.bgIframeEl_, this.getElement());
|
|
448
|
+
}
|
|
449
|
+
if (this.bgEl_) {
|
|
450
|
+
dom.insertSiblingBefore(this.bgEl_, this.getElement());
|
|
451
|
+
}
|
|
452
|
+
this.resizeBackground_();
|
|
453
|
+
}
|
|
454
|
+
};
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
/**
|
|
458
|
+
* @return {boolean} modal Whether the dialog is modal.
|
|
459
|
+
*/
|
|
460
|
+
goog.ui.Dialog.prototype.getModal = function() {
|
|
461
|
+
return this.modal_;
|
|
462
|
+
};
|
|
463
|
+
|
|
464
|
+
|
|
465
|
+
/**
|
|
466
|
+
* @return {string} The CSS class name for the dialog element.
|
|
467
|
+
*/
|
|
468
|
+
goog.ui.Dialog.prototype.getClass = function() {
|
|
469
|
+
return this.class_;
|
|
470
|
+
};
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
/**
|
|
474
|
+
* Sets whether the dialog can be dragged.
|
|
475
|
+
* @param {boolean} draggable Whether the dialog can be dragged.
|
|
476
|
+
*/
|
|
477
|
+
goog.ui.Dialog.prototype.setDraggable = function(draggable) {
|
|
478
|
+
this.draggable_ = draggable;
|
|
479
|
+
|
|
480
|
+
// this will add the dragger if we've already rendered, and gone through
|
|
481
|
+
// the enterDocument routine, but now want to dynamically add draggability
|
|
482
|
+
if (this.draggable_ && !this.dragger_ && this.getElement()) {
|
|
483
|
+
this.dragger_ = this.createDraggableTitleDom_();
|
|
484
|
+
|
|
485
|
+
} else if (!this.draggable_ && this.dragger_) {
|
|
486
|
+
// removes draggable classname post-render
|
|
487
|
+
if (this.getElement()) {
|
|
488
|
+
goog.dom.classes.remove(this.titleEl_,
|
|
489
|
+
goog.getCssName(this.class_, 'title-draggable'));
|
|
490
|
+
}
|
|
491
|
+
this.dragger_.dispose();
|
|
492
|
+
this.dragger_ = null;
|
|
493
|
+
}
|
|
494
|
+
};
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
/**
|
|
498
|
+
* Creates a dragger on the title element and adds a classname for
|
|
499
|
+
* cursor:move targeting.
|
|
500
|
+
* @return {goog.fx.Dragger} The created dragger instance.
|
|
501
|
+
* @private
|
|
502
|
+
*/
|
|
503
|
+
goog.ui.Dialog.prototype.createDraggableTitleDom_ = function() {
|
|
504
|
+
var dragger = new goog.fx.Dragger(this.getElement(), this.titleEl_);
|
|
505
|
+
goog.dom.classes.add(this.titleEl_,
|
|
506
|
+
goog.getCssName(this.class_, 'title-draggable'));
|
|
507
|
+
return dragger;
|
|
508
|
+
};
|
|
509
|
+
|
|
510
|
+
|
|
511
|
+
/**
|
|
512
|
+
* @return {boolean} Whether the dialog is draggable.
|
|
513
|
+
*/
|
|
514
|
+
goog.ui.Dialog.prototype.getDraggable = function() {
|
|
515
|
+
return this.draggable_;
|
|
516
|
+
};
|
|
517
|
+
|
|
518
|
+
|
|
519
|
+
/**
|
|
520
|
+
* Creates the initial DOM representation for the dialog. Overrides {@link
|
|
521
|
+
* goog.ui.Component#createDom}.
|
|
522
|
+
*/
|
|
523
|
+
goog.ui.Dialog.prototype.createDom = function() {
|
|
524
|
+
// Manages the DOM for background mask elements.
|
|
525
|
+
this.manageBackgroundDom_();
|
|
526
|
+
|
|
527
|
+
// Create the dialog element, and make sure it's hidden.
|
|
528
|
+
var dom = this.getDomHelper();
|
|
529
|
+
this.setElementInternal(dom.createDom('div',
|
|
530
|
+
{'className': this.class_, 'tabIndex': 0},
|
|
531
|
+
this.titleEl_ = dom.createDom('div',
|
|
532
|
+
{'className': goog.getCssName(this.class_, 'title'),
|
|
533
|
+
'id': this.getId()},
|
|
534
|
+
this.titleTextEl_ = dom.createDom('span',
|
|
535
|
+
goog.getCssName(this.class_, 'title-text'), this.title_),
|
|
536
|
+
this.titleCloseEl_ = dom.createDom('span',
|
|
537
|
+
goog.getCssName(this.class_, 'title-close'))),
|
|
538
|
+
this.contentEl_ = dom.createDom('div',
|
|
539
|
+
goog.getCssName(this.class_, 'content')),
|
|
540
|
+
this.buttonEl_ = dom.createDom('div',
|
|
541
|
+
goog.getCssName(this.class_, 'buttons')),
|
|
542
|
+
this.tabCatcherEl_ = dom.createDom('span', {'tabIndex': 0})));
|
|
543
|
+
this.titleId_ = this.titleEl_.id;
|
|
544
|
+
goog.dom.a11y.setRole(this.getElement(), 'dialog');
|
|
545
|
+
goog.dom.a11y.setState(this.getElement(), 'labelledby', this.titleId_ || '');
|
|
546
|
+
// If setContent() was called before createDom(), make sure the inner HTML of
|
|
547
|
+
// the content element is initialized.
|
|
548
|
+
if (this.content_) {
|
|
549
|
+
this.contentEl_.innerHTML = this.content_;
|
|
550
|
+
}
|
|
551
|
+
goog.style.showElement(this.titleCloseEl_, this.hasTitleCloseButton_);
|
|
552
|
+
goog.style.showElement(this.getElement(), false);
|
|
553
|
+
|
|
554
|
+
// Render the buttons.
|
|
555
|
+
if (this.buttons_) {
|
|
556
|
+
this.buttons_.attachToElement(this.buttonEl_);
|
|
557
|
+
}
|
|
558
|
+
};
|
|
559
|
+
|
|
560
|
+
|
|
561
|
+
/**
|
|
562
|
+
* Creates and disposes of the DOM for background mask elements.
|
|
563
|
+
* @private
|
|
564
|
+
*/
|
|
565
|
+
goog.ui.Dialog.prototype.manageBackgroundDom_ = function() {
|
|
566
|
+
if (this.useIframeMask_ && this.modal_ && !this.bgIframeEl_) {
|
|
567
|
+
// IE renders the iframe on top of the select elements while still
|
|
568
|
+
// respecting the z-index of the other elements on the page. See
|
|
569
|
+
// http://support.microsoft.com/kb/177378 for more information.
|
|
570
|
+
// Flash and other controls behave in similar ways for other browsers
|
|
571
|
+
this.bgIframeEl_ = goog.dom.iframe.createBlank(this.getDomHelper());
|
|
572
|
+
this.bgIframeEl_.className = goog.getCssName(this.class_, 'bg');
|
|
573
|
+
goog.style.showElement(this.bgIframeEl_, false);
|
|
574
|
+
goog.style.setOpacity(this.bgIframeEl_, 0);
|
|
575
|
+
|
|
576
|
+
// Removes the iframe mask if it exists and we don't want it to
|
|
577
|
+
} else if ((!this.useIframeMask_ || !this.modal_) && this.bgIframeEl_) {
|
|
578
|
+
goog.dom.removeNode(this.bgIframeEl_);
|
|
579
|
+
this.bgIframeEl_ = null;
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
// Create the backgound mask, initialize its opacity, and make sure it's
|
|
583
|
+
// hidden.
|
|
584
|
+
if (this.modal_ && !this.bgEl_) {
|
|
585
|
+
this.bgEl_ = this.getDomHelper().createDom('div',
|
|
586
|
+
goog.getCssName(this.class_, 'bg'));
|
|
587
|
+
goog.style.setOpacity(this.bgEl_, this.backgroundElementOpacity_);
|
|
588
|
+
goog.style.showElement(this.bgEl_, false);
|
|
589
|
+
|
|
590
|
+
// Removes the background mask if it exists and we don't want it to
|
|
591
|
+
} else if (!this.modal_ && this.bgEl_) {
|
|
592
|
+
goog.dom.removeNode(this.bgEl_);
|
|
593
|
+
this.bgEl_ = null;
|
|
594
|
+
}
|
|
595
|
+
};
|
|
596
|
+
|
|
597
|
+
|
|
598
|
+
/**
|
|
599
|
+
* Renders the component. Overrides {@link goog.ui.Component#render}. Accepts
|
|
600
|
+
* an {@code opt_parent} argument for compatibility with the superclass method,
|
|
601
|
+
* but rendering a dialog into anything other than a body element will likely
|
|
602
|
+
* have unexpected results. The parent element defaults to the current document
|
|
603
|
+
* body if unspecified, which is almost always what you want.
|
|
604
|
+
*
|
|
605
|
+
* @param {Element=} opt_parent Element into which the component is to be
|
|
606
|
+
* rendered; defaults to the current document's body element if unspecified.
|
|
607
|
+
* @throws {goog.ui.Component.Error.ALREADY_RENDERED} If the component is
|
|
608
|
+
* already rendered.
|
|
609
|
+
*/
|
|
610
|
+
goog.ui.Dialog.prototype.render = function(opt_parent) {
|
|
611
|
+
// We have to replicate some of the logic from goog.ui.Component#render here,
|
|
612
|
+
// since dialogs are made up of three elements (the bacground mask, the dialog
|
|
613
|
+
// itself, and the optional iframe mask on IE), and all of them must be
|
|
614
|
+
// appended to the parent element before enterDocument is called.
|
|
615
|
+
if (this.isInDocument()) {
|
|
616
|
+
throw Error(goog.ui.Component.Error.ALREADY_RENDERED);
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
if (!this.getElement()) {
|
|
620
|
+
// This creates both (or, on IE, possibly all three) elements.
|
|
621
|
+
this.createDom();
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
// First, render the background mask...
|
|
625
|
+
var parent = opt_parent || this.getDomHelper().getDocument().body;
|
|
626
|
+
this.renderBackground_(parent);
|
|
627
|
+
|
|
628
|
+
// ...then call the superclass method to attach the dialog element and call
|
|
629
|
+
// enterDocument().
|
|
630
|
+
goog.ui.Dialog.superClass_.render.call(this, parent);
|
|
631
|
+
};
|
|
632
|
+
|
|
633
|
+
|
|
634
|
+
/**
|
|
635
|
+
* Renders the background mask.
|
|
636
|
+
* @param {Element} parent Parent element; typically the document body.
|
|
637
|
+
* @private
|
|
638
|
+
*/
|
|
639
|
+
goog.ui.Dialog.prototype.renderBackground_ = function(parent) {
|
|
640
|
+
if (this.bgIframeEl_) {
|
|
641
|
+
parent.appendChild(this.bgIframeEl_);
|
|
642
|
+
}
|
|
643
|
+
if (this.bgEl_) {
|
|
644
|
+
parent.appendChild(this.bgEl_);
|
|
645
|
+
}
|
|
646
|
+
};
|
|
647
|
+
|
|
648
|
+
|
|
649
|
+
/**
|
|
650
|
+
* Overrides {@link goog.ui.Component#renderBefore} to throw a NOT_SUPPORTED
|
|
651
|
+
* error, since dialogs don't support being rendered before another DOM element.
|
|
652
|
+
* TODO(user): Figure out how to do this cleanly between Component and this.
|
|
653
|
+
*
|
|
654
|
+
* @param {Element} sibling Element before which the component is to be
|
|
655
|
+
* rendered (ignored).
|
|
656
|
+
*/
|
|
657
|
+
goog.ui.Dialog.prototype.renderBefore = function(sibling) {
|
|
658
|
+
throw Error(goog.ui.Component.Error.NOT_SUPPORTED);
|
|
659
|
+
};
|
|
660
|
+
|
|
661
|
+
|
|
662
|
+
/**
|
|
663
|
+
* Determines if the given element can be decorated by this dialog component.
|
|
664
|
+
* Overrides {@link goog.ui.Component#canDecorate}.
|
|
665
|
+
* @param {Element} element Element to decorate.
|
|
666
|
+
* @return {*} True-ish if the element can be decorated, false-ish otherwise.
|
|
667
|
+
*/
|
|
668
|
+
goog.ui.Dialog.prototype.canDecorate = function(element) {
|
|
669
|
+
// Assume we can decorate any DIV.
|
|
670
|
+
return element && element.tagName && element.tagName == 'DIV' &&
|
|
671
|
+
goog.ui.Dialog.superClass_.canDecorate.call(this, element);
|
|
672
|
+
};
|
|
673
|
+
|
|
674
|
+
|
|
675
|
+
/**
|
|
676
|
+
* Decorates the given element as a dialog. Overrides {@link
|
|
677
|
+
* goog.ui.Component#decorateInternal}. Considered protected.
|
|
678
|
+
* @param {Element} element Element to decorate.
|
|
679
|
+
* @protected
|
|
680
|
+
*/
|
|
681
|
+
goog.ui.Dialog.prototype.decorateInternal = function(element) {
|
|
682
|
+
// Decorate the dialog area element.
|
|
683
|
+
goog.ui.Dialog.superClass_.decorateInternal.call(this, element);
|
|
684
|
+
goog.dom.classes.add(this.getElement(), this.class_);
|
|
685
|
+
|
|
686
|
+
// Decorate or create the content element.
|
|
687
|
+
var contentClass = goog.getCssName(this.class_, 'content');
|
|
688
|
+
this.contentEl_ = goog.dom.getElementsByTagNameAndClass(
|
|
689
|
+
null, contentClass, this.getElement())[0];
|
|
690
|
+
if (this.contentEl_) {
|
|
691
|
+
this.content_ = this.contentEl_.innerHTML;
|
|
692
|
+
} else {
|
|
693
|
+
this.contentEl_ = this.getDomHelper().createDom('div', contentClass);
|
|
694
|
+
if (this.content_) {
|
|
695
|
+
this.contentEl_.innerHTML = this.content_;
|
|
696
|
+
}
|
|
697
|
+
this.getElement().appendChild(this.contentEl_);
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
// Decorate or create the title bar element.
|
|
701
|
+
var titleClass = goog.getCssName(this.class_, 'title');
|
|
702
|
+
var titleTextClass = goog.getCssName(this.class_, 'title-text');
|
|
703
|
+
var titleCloseClass = goog.getCssName(this.class_, 'title-close');
|
|
704
|
+
this.titleEl_ = goog.dom.getElementsByTagNameAndClass(
|
|
705
|
+
null, titleClass, this.getElement())[0];
|
|
706
|
+
if (this.titleEl_) {
|
|
707
|
+
// Only look for title text & title close elements if a title bar element
|
|
708
|
+
// was found. Otherwise assume that the entire title bar has to be
|
|
709
|
+
// created from scratch.
|
|
710
|
+
this.titleTextEl_ = goog.dom.getElementsByTagNameAndClass(
|
|
711
|
+
null, titleTextClass, this.titleEl_)[0];
|
|
712
|
+
this.titleCloseEl_ = goog.dom.getElementsByTagNameAndClass(
|
|
713
|
+
null, titleCloseClass, this.titleEl_)[0];
|
|
714
|
+
} else {
|
|
715
|
+
// Create the title bar element and insert it before the content area.
|
|
716
|
+
// This is useful if the element to decorate only includes a content area.
|
|
717
|
+
this.titleEl_ = this.getDomHelper().createDom('div', titleClass);
|
|
718
|
+
this.getElement().insertBefore(this.titleEl_, this.contentEl_);
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
// Decorate or create the title text element.
|
|
722
|
+
if (this.titleTextEl_) {
|
|
723
|
+
this.title_ = goog.dom.getTextContent(this.titleTextEl_);
|
|
724
|
+
} else {
|
|
725
|
+
this.titleTextEl_ = this.getDomHelper().createDom('span', titleTextClass,
|
|
726
|
+
this.title_);
|
|
727
|
+
this.titleEl_.appendChild(this.titleTextEl_);
|
|
728
|
+
}
|
|
729
|
+
goog.dom.a11y.setState(this.getElement(), 'labelledby', this.titleId_ || '');
|
|
730
|
+
// Decorate or create the title close element.
|
|
731
|
+
if (!this.titleCloseEl_) {
|
|
732
|
+
this.titleCloseEl_ = this.getDomHelper().createDom('span', titleCloseClass);
|
|
733
|
+
this.titleEl_.appendChild(this.titleCloseEl_);
|
|
734
|
+
}
|
|
735
|
+
goog.style.showElement(this.titleCloseEl_, this.hasTitleCloseButton_);
|
|
736
|
+
|
|
737
|
+
// Decorate or create the button container element.
|
|
738
|
+
var buttonsClass = goog.getCssName(this.class_, 'buttons');
|
|
739
|
+
this.buttonEl_ = goog.dom.getElementsByTagNameAndClass(
|
|
740
|
+
null, buttonsClass, this.getElement())[0];
|
|
741
|
+
if (this.buttonEl_) {
|
|
742
|
+
// Button container element found. Create empty button set and use it to
|
|
743
|
+
// decorate the button container.
|
|
744
|
+
this.buttons_ = new goog.ui.Dialog.ButtonSet(this.getDomHelper());
|
|
745
|
+
this.buttons_.decorate(this.buttonEl_);
|
|
746
|
+
} else {
|
|
747
|
+
// Create new button container element, and render a button set into it.
|
|
748
|
+
this.buttonEl_ = this.getDomHelper().createDom('div', buttonsClass);
|
|
749
|
+
this.getElement().appendChild(this.buttonEl_);
|
|
750
|
+
if (this.buttons_) {
|
|
751
|
+
this.buttons_.attachToElement(this.buttonEl_);
|
|
752
|
+
}
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
// Create the background mask...
|
|
756
|
+
this.manageBackgroundDom_();
|
|
757
|
+
|
|
758
|
+
// ...and render it.
|
|
759
|
+
this.renderBackground_(goog.dom.getOwnerDocument(this.getElement()).body);
|
|
760
|
+
|
|
761
|
+
// Make sure the decorated dialog is hidden.
|
|
762
|
+
goog.style.showElement(this.getElement(), false);
|
|
763
|
+
};
|
|
764
|
+
|
|
765
|
+
|
|
766
|
+
/**
|
|
767
|
+
* Initializes the component just after its DOM has been rendered into the
|
|
768
|
+
* document. Overrides {@link goog.ui.Component#enterDocument}.
|
|
769
|
+
*/
|
|
770
|
+
goog.ui.Dialog.prototype.enterDocument = function() {
|
|
771
|
+
goog.ui.Dialog.superClass_.enterDocument.call(this);
|
|
772
|
+
|
|
773
|
+
this.focusHandler_ = new goog.events.FocusHandler(
|
|
774
|
+
this.getDomHelper().getDocument());
|
|
775
|
+
|
|
776
|
+
// Add drag support.
|
|
777
|
+
if (this.draggable_ && !this.dragger_) {
|
|
778
|
+
this.dragger_ = this.createDraggableTitleDom_();
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
// Add event listeners to the close box and the button container.
|
|
782
|
+
this.getHandler().
|
|
783
|
+
listen(this.titleCloseEl_, goog.events.EventType.CLICK,
|
|
784
|
+
this.onTitleCloseClick_).
|
|
785
|
+
|
|
786
|
+
// We need to watch the entire document so that we can detect when the
|
|
787
|
+
// focus is moved out of this dialog.
|
|
788
|
+
listen(this.focusHandler_, goog.events.FocusHandler.EventType.FOCUSIN,
|
|
789
|
+
this.onFocus_);
|
|
790
|
+
|
|
791
|
+
goog.dom.a11y.setRole(this.getElement(), 'dialog');
|
|
792
|
+
if (this.titleTextEl_.id !== '') {
|
|
793
|
+
goog.dom.a11y.setState(
|
|
794
|
+
this.getElement(), 'labelledby', this.titleTextEl_.id);
|
|
795
|
+
}
|
|
796
|
+
};
|
|
797
|
+
|
|
798
|
+
|
|
799
|
+
/**
|
|
800
|
+
* Cleans up the dialog component just before it is disposed of. Overrides
|
|
801
|
+
* {@link goog.ui.Component#exitDocument}.
|
|
802
|
+
*/
|
|
803
|
+
goog.ui.Dialog.prototype.exitDocument = function() {
|
|
804
|
+
if (this.isVisible()) {
|
|
805
|
+
this.setVisible(false);
|
|
806
|
+
}
|
|
807
|
+
|
|
808
|
+
this.focusHandler_.dispose();
|
|
809
|
+
this.focusHandler_ = null;
|
|
810
|
+
|
|
811
|
+
// Remove drag support.
|
|
812
|
+
if (this.dragger_) {
|
|
813
|
+
this.dragger_.dispose();
|
|
814
|
+
this.dragger_ = null;
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
goog.ui.Dialog.superClass_.exitDocument.call(this);
|
|
818
|
+
};
|
|
819
|
+
|
|
820
|
+
|
|
821
|
+
/**
|
|
822
|
+
* Sets the visibility of the dialog box and moves focus to the default button.
|
|
823
|
+
* Lazily renders the component if needed.
|
|
824
|
+
* @param {boolean} visible Whether the dialog should be visible.
|
|
825
|
+
*/
|
|
826
|
+
goog.ui.Dialog.prototype.setVisible = function(visible) {
|
|
827
|
+
if (visible == this.visible_) {
|
|
828
|
+
return;
|
|
829
|
+
}
|
|
830
|
+
|
|
831
|
+
// TODO(user): Add utility methods to Component to get window & document?
|
|
832
|
+
var doc = this.getDomHelper().getDocument();
|
|
833
|
+
|
|
834
|
+
// Older versions of Safari did not know how to get a window for a given
|
|
835
|
+
// document, so just fall up to the window we're running in.
|
|
836
|
+
var win = goog.dom.getWindow(doc) || window;
|
|
837
|
+
|
|
838
|
+
// If the dialog hasn't been rendered yet, render it now.
|
|
839
|
+
if (!this.isInDocument()) {
|
|
840
|
+
this.render(doc.body);
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
if (visible) {
|
|
844
|
+
this.resizeBackground_();
|
|
845
|
+
this.reposition();
|
|
846
|
+
// Listen for keyboard and resize events while the dialog is visible.
|
|
847
|
+
this.getHandler().
|
|
848
|
+
listen(this.getElement(), goog.events.EventType.KEYDOWN, this.onKey_).
|
|
849
|
+
listen(this.getElement(), goog.events.EventType.KEYPRESS, this.onKey_).
|
|
850
|
+
listen(win, goog.events.EventType.RESIZE, this.onResize_);
|
|
851
|
+
} else {
|
|
852
|
+
// Stop listening for keyboard and resize events while the dialog is hidden.
|
|
853
|
+
this.getHandler().
|
|
854
|
+
unlisten(this.getElement(), goog.events.EventType.KEYDOWN, this.onKey_).
|
|
855
|
+
unlisten(this.getElement(), goog.events.EventType.KEYPRESS,
|
|
856
|
+
this.onKey_).
|
|
857
|
+
unlisten(win, goog.events.EventType.RESIZE, this.onResize_);
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
// Show/hide the iframe mask (on IE), the background mask, and the dialog.
|
|
861
|
+
if (this.bgIframeEl_) {
|
|
862
|
+
goog.style.showElement(this.bgIframeEl_, visible);
|
|
863
|
+
}
|
|
864
|
+
if (this.bgEl_) {
|
|
865
|
+
goog.style.showElement(this.bgEl_, visible);
|
|
866
|
+
}
|
|
867
|
+
goog.style.showElement(this.getElement(), visible);
|
|
868
|
+
|
|
869
|
+
if (visible) {
|
|
870
|
+
this.focus();
|
|
871
|
+
}
|
|
872
|
+
|
|
873
|
+
this.visible_ = visible;
|
|
874
|
+
|
|
875
|
+
if (!visible) {
|
|
876
|
+
this.getHandler().unlisten(this.buttonEl_,
|
|
877
|
+
goog.events.EventType.CLICK, this.onButtonClick_);
|
|
878
|
+
this.dispatchEvent(goog.ui.Dialog.EventType.AFTER_HIDE);
|
|
879
|
+
if (this.disposeOnHide_) {
|
|
880
|
+
this.dispose();
|
|
881
|
+
}
|
|
882
|
+
} else {
|
|
883
|
+
// NOTE: see bug 1163154 for an example of an edge case where making the
|
|
884
|
+
// dialog visible in response to a KEYDOWN will result in a CLICK event
|
|
885
|
+
// firing on the default button (immediately closing the dialog) if the key
|
|
886
|
+
// that fired the KEYDOWN is also normally used to activate controls
|
|
887
|
+
// (i.e. SPACE/ENTER).
|
|
888
|
+
//
|
|
889
|
+
// This could be worked around by attaching the onButtonClick_ handler in a
|
|
890
|
+
// setTimeout, but that was deemed undesirable.
|
|
891
|
+
this.getHandler().listen(this.buttonEl_,
|
|
892
|
+
goog.events.EventType.CLICK, this.onButtonClick_);
|
|
893
|
+
}
|
|
894
|
+
};
|
|
895
|
+
|
|
896
|
+
|
|
897
|
+
/**
|
|
898
|
+
* @return {boolean} Whether the dialog box is visible.
|
|
899
|
+
*/
|
|
900
|
+
goog.ui.Dialog.prototype.isVisible = function() {
|
|
901
|
+
return this.visible_;
|
|
902
|
+
};
|
|
903
|
+
|
|
904
|
+
|
|
905
|
+
/**
|
|
906
|
+
* Focuses the dialog contents and the default dialog button if there is one.
|
|
907
|
+
*/
|
|
908
|
+
goog.ui.Dialog.prototype.focus = function() {
|
|
909
|
+
// Start with the focus on the dialog itself. In FF, if we focus on a
|
|
910
|
+
// sub-element first, then hitting tab moves the focus outside of the
|
|
911
|
+
// dialog, which we don't want. In addition, there may not be a default
|
|
912
|
+
// button, but we certainly want focus to remain within the dialog.
|
|
913
|
+
try {
|
|
914
|
+
this.getElement().focus();
|
|
915
|
+
} catch (e) {
|
|
916
|
+
// Swallow this. IE can throw an error if the element can not be focused.
|
|
917
|
+
}
|
|
918
|
+
// Move focus to the default button (if any).
|
|
919
|
+
if (this.getButtonSet()) {
|
|
920
|
+
var defaultButton = this.getButtonSet().getDefault();
|
|
921
|
+
if (defaultButton) {
|
|
922
|
+
var doc = this.getDomHelper().getDocument();
|
|
923
|
+
var buttons = this.buttonEl_.getElementsByTagName('button');
|
|
924
|
+
for (var i = 0, button; button = buttons[i]; i++) {
|
|
925
|
+
if (button.name == defaultButton) {
|
|
926
|
+
try {
|
|
927
|
+
// Reopening a dialog can cause focusing the button to fail in
|
|
928
|
+
// WebKit and Opera. Shift the focus to a temporary <input>
|
|
929
|
+
// element to make refocusing the button possible.
|
|
930
|
+
if (goog.userAgent.WEBKIT || goog.userAgent.OPERA) {
|
|
931
|
+
var temp = doc.createElement('input');
|
|
932
|
+
temp.style.cssText =
|
|
933
|
+
'position:fixed;width:0;height:0;left:0;top:0;';
|
|
934
|
+
this.getElement().appendChild(temp);
|
|
935
|
+
temp.focus();
|
|
936
|
+
this.getElement().removeChild(temp);
|
|
937
|
+
}
|
|
938
|
+
button.focus();
|
|
939
|
+
} catch (e) {
|
|
940
|
+
// Swallow this. Could be the button is disabled
|
|
941
|
+
// and IE6 wishes to throw an error.
|
|
942
|
+
}
|
|
943
|
+
break;
|
|
944
|
+
}
|
|
945
|
+
}
|
|
946
|
+
}
|
|
947
|
+
}
|
|
948
|
+
};
|
|
949
|
+
|
|
950
|
+
|
|
951
|
+
/**
|
|
952
|
+
* Make the background element the size of the document.
|
|
953
|
+
*
|
|
954
|
+
* NOTE(user): We must hide the background element before measuring the
|
|
955
|
+
* document, otherwise the size of the background will stop the document from
|
|
956
|
+
* shrinking to fit a smaller window. This does cause a slight flicker in Linux
|
|
957
|
+
* browsers, but should not be a common scenario.
|
|
958
|
+
* @private
|
|
959
|
+
*/
|
|
960
|
+
goog.ui.Dialog.prototype.resizeBackground_ = function() {
|
|
961
|
+
if (this.bgIframeEl_) {
|
|
962
|
+
goog.style.showElement(this.bgIframeEl_, false);
|
|
963
|
+
}
|
|
964
|
+
if (this.bgEl_) {
|
|
965
|
+
goog.style.showElement(this.bgEl_, false);
|
|
966
|
+
}
|
|
967
|
+
|
|
968
|
+
var doc = this.getDomHelper().getDocument();
|
|
969
|
+
var win = goog.dom.getWindow(doc) || window;
|
|
970
|
+
|
|
971
|
+
// Take the max of scroll height and view height for cases in which document
|
|
972
|
+
// does not fill screen.
|
|
973
|
+
var viewSize = goog.dom.getViewportSize(win);
|
|
974
|
+
var w = Math.max(doc.body.scrollWidth, viewSize.width);
|
|
975
|
+
var h = Math.max(doc.body.scrollHeight, viewSize.height);
|
|
976
|
+
|
|
977
|
+
if (this.bgIframeEl_) {
|
|
978
|
+
goog.style.showElement(this.bgIframeEl_, true);
|
|
979
|
+
goog.style.setSize(this.bgIframeEl_, w, h);
|
|
980
|
+
}
|
|
981
|
+
if (this.bgEl_) {
|
|
982
|
+
goog.style.showElement(this.bgEl_, true);
|
|
983
|
+
goog.style.setSize(this.bgEl_, w, h);
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
if (this.draggable_) {
|
|
987
|
+
var dialogSize = goog.style.getSize(this.getElement());
|
|
988
|
+
this.dragger_.limits =
|
|
989
|
+
new goog.math.Rect(0, 0, w - dialogSize.width, h - dialogSize.height);
|
|
990
|
+
}
|
|
991
|
+
};
|
|
992
|
+
|
|
993
|
+
|
|
994
|
+
/**
|
|
995
|
+
* Centers the dialog in the viewport, taking scrolling into account.
|
|
996
|
+
*/
|
|
997
|
+
goog.ui.Dialog.prototype.reposition = function() {
|
|
998
|
+
// Get the current viewport to obtain the scroll offset.
|
|
999
|
+
var doc = this.getDomHelper().getDocument();
|
|
1000
|
+
var win = goog.dom.getWindow(doc) || window;
|
|
1001
|
+
if (goog.style.getComputedPosition(this.getElement()) == 'fixed') {
|
|
1002
|
+
var x = 0;
|
|
1003
|
+
var y = 0;
|
|
1004
|
+
} else {
|
|
1005
|
+
var scroll = this.getDomHelper().getDocumentScroll();
|
|
1006
|
+
var x = scroll.x;
|
|
1007
|
+
var y = scroll.y;
|
|
1008
|
+
}
|
|
1009
|
+
|
|
1010
|
+
var dialogSize = goog.style.getSize(this.getElement());
|
|
1011
|
+
var viewSize = goog.dom.getViewportSize(win);
|
|
1012
|
+
|
|
1013
|
+
// Make sure left and top are non-negatives.
|
|
1014
|
+
var left = Math.max(x + viewSize.width / 2 - dialogSize.width / 2, 0);
|
|
1015
|
+
var top = Math.max(y + viewSize.height / 2 - dialogSize.height / 2, 0);
|
|
1016
|
+
|
|
1017
|
+
goog.style.setPosition(this.getElement(), left, top);
|
|
1018
|
+
};
|
|
1019
|
+
|
|
1020
|
+
|
|
1021
|
+
/**
|
|
1022
|
+
* Handles a click on the title close area.
|
|
1023
|
+
* @param {goog.events.BrowserEvent} e Browser's event object.
|
|
1024
|
+
* @private
|
|
1025
|
+
*/
|
|
1026
|
+
goog.ui.Dialog.prototype.onTitleCloseClick_ = function(e) {
|
|
1027
|
+
if (!this.hasTitleCloseButton_) {
|
|
1028
|
+
return;
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
var bs = this.getButtonSet();
|
|
1032
|
+
var key = bs && bs.getCancel();
|
|
1033
|
+
// Only if there is a valid cancel button is an event dispatched.
|
|
1034
|
+
if (key) {
|
|
1035
|
+
var caption = /** @type {Element|string} */(bs.get(key));
|
|
1036
|
+
if (this.dispatchEvent(new goog.ui.Dialog.Event(key, caption))) {
|
|
1037
|
+
this.setVisible(false);
|
|
1038
|
+
}
|
|
1039
|
+
} else {
|
|
1040
|
+
this.setVisible(false);
|
|
1041
|
+
}
|
|
1042
|
+
};
|
|
1043
|
+
|
|
1044
|
+
|
|
1045
|
+
/**
|
|
1046
|
+
* @return {boolean} Whether this dialog has a title close button.
|
|
1047
|
+
*/
|
|
1048
|
+
goog.ui.Dialog.prototype.getHasTitleCloseButton = function() {
|
|
1049
|
+
return this.hasTitleCloseButton_;
|
|
1050
|
+
};
|
|
1051
|
+
|
|
1052
|
+
|
|
1053
|
+
/**
|
|
1054
|
+
* Sets whether the dialog should have a close button in the title bar. There
|
|
1055
|
+
* will always be an element for the title close button, but setting this
|
|
1056
|
+
* parameter to false will cause it to be hidden and have no active listener.
|
|
1057
|
+
* @param {boolean} b Whether this dialog should have a title close button.
|
|
1058
|
+
*/
|
|
1059
|
+
goog.ui.Dialog.prototype.setHasTitleCloseButton = function(b) {
|
|
1060
|
+
this.hasTitleCloseButton_ = b;
|
|
1061
|
+
if (this.titleCloseEl_) {
|
|
1062
|
+
goog.style.showElement(this.titleCloseEl_, this.hasTitleCloseButton_);
|
|
1063
|
+
}
|
|
1064
|
+
};
|
|
1065
|
+
|
|
1066
|
+
|
|
1067
|
+
/**
|
|
1068
|
+
* @return {boolean} Whether the escape key should close this dialog.
|
|
1069
|
+
*/
|
|
1070
|
+
goog.ui.Dialog.prototype.isEscapeToCancel = function() {
|
|
1071
|
+
return this.escapeToCancel_;
|
|
1072
|
+
};
|
|
1073
|
+
|
|
1074
|
+
|
|
1075
|
+
/**
|
|
1076
|
+
* @param {boolean} b Whether the escape key should close this dialog.
|
|
1077
|
+
*/
|
|
1078
|
+
goog.ui.Dialog.prototype.setEscapeToCancel = function(b) {
|
|
1079
|
+
this.escapeToCancel_ = b;
|
|
1080
|
+
};
|
|
1081
|
+
|
|
1082
|
+
|
|
1083
|
+
/**
|
|
1084
|
+
* Sets whether the dialog should be disposed when it is hidden. By default
|
|
1085
|
+
* dialogs are not disposed when they are hidden.
|
|
1086
|
+
* @param {boolean} b Whether the dialog should get disposed when it gets
|
|
1087
|
+
* hidden.
|
|
1088
|
+
*/
|
|
1089
|
+
goog.ui.Dialog.prototype.setDisposeOnHide = function(b) {
|
|
1090
|
+
this.disposeOnHide_ = b;
|
|
1091
|
+
};
|
|
1092
|
+
|
|
1093
|
+
|
|
1094
|
+
/**
|
|
1095
|
+
* @return {boolean} Whether the dialog should be disposed when it is hidden.
|
|
1096
|
+
*/
|
|
1097
|
+
goog.ui.Dialog.prototype.getDisposeOnHide = function() {
|
|
1098
|
+
return this.disposeOnHide_;
|
|
1099
|
+
};
|
|
1100
|
+
|
|
1101
|
+
|
|
1102
|
+
/** @inheritDoc */
|
|
1103
|
+
goog.ui.Dialog.prototype.disposeInternal = function() {
|
|
1104
|
+
// The superclass method calls exitDocument, which in turn calls
|
|
1105
|
+
// setVisible(false). Between them they clean up all event handlers.
|
|
1106
|
+
goog.ui.Dialog.superClass_.disposeInternal.call(this);
|
|
1107
|
+
|
|
1108
|
+
// The superclass method disposes of the element and its children,
|
|
1109
|
+
// unless the dialog was decorated. We only have to worry about
|
|
1110
|
+
// background mask elements.
|
|
1111
|
+
if (this.bgEl_) {
|
|
1112
|
+
goog.dom.removeNode(this.bgEl_);
|
|
1113
|
+
this.bgEl_ = null;
|
|
1114
|
+
}
|
|
1115
|
+
if (this.bgIframeEl_) {
|
|
1116
|
+
goog.dom.removeNode(this.bgIframeEl_);
|
|
1117
|
+
this.bgIframeEl_ = null;
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
this.titleCloseEl_ = null;
|
|
1121
|
+
this.buttonEl_ = null;
|
|
1122
|
+
this.tabCatcherEl_ = null;
|
|
1123
|
+
};
|
|
1124
|
+
|
|
1125
|
+
|
|
1126
|
+
/**
|
|
1127
|
+
* Sets the button set to use.
|
|
1128
|
+
* Note: Passing in null will cause no button set to be rendered.
|
|
1129
|
+
* @param {goog.ui.Dialog.ButtonSet?} buttons The button set to use.
|
|
1130
|
+
*/
|
|
1131
|
+
goog.ui.Dialog.prototype.setButtonSet = function(buttons) {
|
|
1132
|
+
this.buttons_ = buttons;
|
|
1133
|
+
if (this.buttonEl_) {
|
|
1134
|
+
if (this.buttons_) {
|
|
1135
|
+
this.buttons_.attachToElement(this.buttonEl_);
|
|
1136
|
+
} else {
|
|
1137
|
+
this.buttonEl_.innerHTML = '';
|
|
1138
|
+
}
|
|
1139
|
+
}
|
|
1140
|
+
};
|
|
1141
|
+
|
|
1142
|
+
|
|
1143
|
+
/**
|
|
1144
|
+
* Returns the button set being used.
|
|
1145
|
+
* @return {goog.ui.Dialog.ButtonSet?} The button set being used.
|
|
1146
|
+
*/
|
|
1147
|
+
goog.ui.Dialog.prototype.getButtonSet = function() {
|
|
1148
|
+
return this.buttons_;
|
|
1149
|
+
};
|
|
1150
|
+
|
|
1151
|
+
|
|
1152
|
+
/**
|
|
1153
|
+
* Handles a click on the button container.
|
|
1154
|
+
* @param {goog.events.BrowserEvent} e Browser's event object.
|
|
1155
|
+
* @private
|
|
1156
|
+
*/
|
|
1157
|
+
goog.ui.Dialog.prototype.onButtonClick_ = function(e) {
|
|
1158
|
+
var button = this.findParentButton_(/** @type {Element} */ (e.target));
|
|
1159
|
+
if (button && !button.disabled) {
|
|
1160
|
+
var key = button.name;
|
|
1161
|
+
var caption = /** @type {Element|string} */(
|
|
1162
|
+
this.getButtonSet().get(key));
|
|
1163
|
+
if (this.dispatchEvent(new goog.ui.Dialog.Event(key, caption))) {
|
|
1164
|
+
this.setVisible(false);
|
|
1165
|
+
}
|
|
1166
|
+
}
|
|
1167
|
+
};
|
|
1168
|
+
|
|
1169
|
+
|
|
1170
|
+
/**
|
|
1171
|
+
* Finds the parent button of an element (or null if there was no button
|
|
1172
|
+
* parent).
|
|
1173
|
+
* @param {Element} element The element that was clicked on.
|
|
1174
|
+
* @return {Element} Returns the parent button or null if not found.
|
|
1175
|
+
* @private
|
|
1176
|
+
*/
|
|
1177
|
+
goog.ui.Dialog.prototype.findParentButton_ = function(element) {
|
|
1178
|
+
var el = element;
|
|
1179
|
+
while (el != null && el != this.buttonEl_) {
|
|
1180
|
+
if (el.tagName == 'BUTTON') {
|
|
1181
|
+
return /** @type {Element} */(el);
|
|
1182
|
+
}
|
|
1183
|
+
el = el.parentNode;
|
|
1184
|
+
}
|
|
1185
|
+
return null;
|
|
1186
|
+
};
|
|
1187
|
+
|
|
1188
|
+
|
|
1189
|
+
/**
|
|
1190
|
+
* Handles keydown and keypress events, and dismisses the popup if cancel is
|
|
1191
|
+
* pressed. If there is a cancel action in the ButtonSet, than that will be
|
|
1192
|
+
* fired. Also prevents tabbing out of the dialog.
|
|
1193
|
+
* @param {goog.events.BrowserEvent} e Browser's event object.
|
|
1194
|
+
* @private
|
|
1195
|
+
*/
|
|
1196
|
+
goog.ui.Dialog.prototype.onKey_ = function(e) {
|
|
1197
|
+
var close = false;
|
|
1198
|
+
var hasHandler = false;
|
|
1199
|
+
var buttonSet = this.getButtonSet();
|
|
1200
|
+
var target = e.target;
|
|
1201
|
+
|
|
1202
|
+
if (e.type == goog.events.EventType.KEYDOWN) {
|
|
1203
|
+
// Escape and tab can only properly be handled in keydown handlers.
|
|
1204
|
+
if (this.escapeToCancel_ && e.keyCode == goog.events.KeyCodes.ESC) {
|
|
1205
|
+
// Only if there is a valid cancel button is an event dispatched.
|
|
1206
|
+
var cancel = buttonSet && buttonSet.getCancel();
|
|
1207
|
+
|
|
1208
|
+
// Users may expect to hit escape on a SELECT element.
|
|
1209
|
+
var isSpecialFormElement =
|
|
1210
|
+
target.tagName == 'SELECT' && !target.disabled;
|
|
1211
|
+
|
|
1212
|
+
if (cancel && !isSpecialFormElement) {
|
|
1213
|
+
hasHandler = true;
|
|
1214
|
+
|
|
1215
|
+
var caption = buttonSet.get(cancel);
|
|
1216
|
+
close = this.dispatchEvent(
|
|
1217
|
+
new goog.ui.Dialog.Event(cancel,
|
|
1218
|
+
/** @type {Element|null|string} */(caption)));
|
|
1219
|
+
} else if (!isSpecialFormElement) {
|
|
1220
|
+
close = true;
|
|
1221
|
+
}
|
|
1222
|
+
} else if (e.keyCode == goog.events.KeyCodes.TAB && e.shiftKey &&
|
|
1223
|
+
target == this.getElement()) {
|
|
1224
|
+
// Prevent the user from shift-tabbing backwards out of the dialog box.
|
|
1225
|
+
// TODO(user): Instead, we should move the focus to the last tabbable
|
|
1226
|
+
// element inside the dialog.
|
|
1227
|
+
hasHandler = true;
|
|
1228
|
+
}
|
|
1229
|
+
} else if (e.keyCode == goog.events.KeyCodes.ENTER) {
|
|
1230
|
+
// Only handle ENTER in keypress events, in case the action opens a
|
|
1231
|
+
// popup window.
|
|
1232
|
+
var key;
|
|
1233
|
+
if (target.tagName == 'BUTTON') {
|
|
1234
|
+
// If focus was on a button, it must have been enabled, so we can fire
|
|
1235
|
+
// that button's handler.
|
|
1236
|
+
key = target.name;
|
|
1237
|
+
} else if (buttonSet) {
|
|
1238
|
+
// Try to fire the default button's handler (if one exists), but only if
|
|
1239
|
+
// the button is enabled.
|
|
1240
|
+
var defaultKey = buttonSet.getDefault();
|
|
1241
|
+
var defaultButton = defaultKey && buttonSet.getButton(defaultKey);
|
|
1242
|
+
|
|
1243
|
+
// Users may expect to hit enter on a TEXTAREA or a SELECT element.
|
|
1244
|
+
var isSpecialFormElement =
|
|
1245
|
+
(target.tagName == 'TEXTAREA' || target.tagName == 'SELECT') &&
|
|
1246
|
+
!target.disabled;
|
|
1247
|
+
|
|
1248
|
+
if (defaultButton && !defaultButton.disabled && !isSpecialFormElement) {
|
|
1249
|
+
key = defaultKey;
|
|
1250
|
+
}
|
|
1251
|
+
}
|
|
1252
|
+
if (key) {
|
|
1253
|
+
hasHandler = true;
|
|
1254
|
+
close = this.dispatchEvent(
|
|
1255
|
+
new goog.ui.Dialog.Event(key, String(buttonSet.get(key))));
|
|
1256
|
+
}
|
|
1257
|
+
}
|
|
1258
|
+
|
|
1259
|
+
if (close || hasHandler) {
|
|
1260
|
+
e.stopPropagation();
|
|
1261
|
+
e.preventDefault();
|
|
1262
|
+
}
|
|
1263
|
+
|
|
1264
|
+
if (close) {
|
|
1265
|
+
this.setVisible(false);
|
|
1266
|
+
}
|
|
1267
|
+
};
|
|
1268
|
+
|
|
1269
|
+
|
|
1270
|
+
/**
|
|
1271
|
+
* Handles window resize events.
|
|
1272
|
+
* @param {goog.events.BrowserEvent} e Browser's event object.
|
|
1273
|
+
* @private
|
|
1274
|
+
*/
|
|
1275
|
+
goog.ui.Dialog.prototype.onResize_ = function(e) {
|
|
1276
|
+
this.resizeBackground_();
|
|
1277
|
+
};
|
|
1278
|
+
|
|
1279
|
+
|
|
1280
|
+
/**
|
|
1281
|
+
* Handles focus events. Makes sure that if the user tabs past the
|
|
1282
|
+
* elements in the dialog, the focus wraps back to the beginning.
|
|
1283
|
+
* @param {goog.events.BrowserEvent} e Browser's event object.
|
|
1284
|
+
* @private
|
|
1285
|
+
*/
|
|
1286
|
+
goog.ui.Dialog.prototype.onFocus_ = function(e) {
|
|
1287
|
+
if (this.tabCatcherEl_ == e.target) {
|
|
1288
|
+
goog.Timer.callOnce(this.focusElement_, 0, this);
|
|
1289
|
+
}
|
|
1290
|
+
};
|
|
1291
|
+
|
|
1292
|
+
|
|
1293
|
+
/**
|
|
1294
|
+
* Moves the focus to the dialog.
|
|
1295
|
+
* @private
|
|
1296
|
+
*/
|
|
1297
|
+
goog.ui.Dialog.prototype.focusElement_ = function() {
|
|
1298
|
+
if (goog.userAgent.IE) {
|
|
1299
|
+
// In IE, we must first focus on the body or else focussing on a
|
|
1300
|
+
// sub-element will not work.
|
|
1301
|
+
this.getDomHelper().getDocument().body.focus();
|
|
1302
|
+
}
|
|
1303
|
+
this.getElement().focus();
|
|
1304
|
+
};
|
|
1305
|
+
|
|
1306
|
+
|
|
1307
|
+
|
|
1308
|
+
/**
|
|
1309
|
+
* Dialog event class.
|
|
1310
|
+
* @param {string} key Key identifier for the button.
|
|
1311
|
+
* @param {string|Element} caption Caption on the button (might be i18nlized).
|
|
1312
|
+
* @constructor
|
|
1313
|
+
* @extends {goog.events.Event}
|
|
1314
|
+
*/
|
|
1315
|
+
goog.ui.Dialog.Event = function(key, caption) {
|
|
1316
|
+
this.type = goog.ui.Dialog.EventType.SELECT;
|
|
1317
|
+
this.key = key;
|
|
1318
|
+
this.caption = caption;
|
|
1319
|
+
};
|
|
1320
|
+
goog.inherits(goog.ui.Dialog.Event, goog.events.Event);
|
|
1321
|
+
|
|
1322
|
+
|
|
1323
|
+
/**
|
|
1324
|
+
* Event type constant for dialog events.
|
|
1325
|
+
* TODO(user): Change this to goog.ui.Dialog.EventType.SELECT.
|
|
1326
|
+
* @type {string}
|
|
1327
|
+
* @deprecated Use goog.ui.Dialog.EventType.SELECT.
|
|
1328
|
+
*/
|
|
1329
|
+
goog.ui.Dialog.SELECT_EVENT = 'dialogselect';
|
|
1330
|
+
|
|
1331
|
+
|
|
1332
|
+
/**
|
|
1333
|
+
* Events dispatched by dialogs.
|
|
1334
|
+
* @enum {string}
|
|
1335
|
+
*/
|
|
1336
|
+
goog.ui.Dialog.EventType = {
|
|
1337
|
+
/**
|
|
1338
|
+
* Dispatched when the user closes the dialog.
|
|
1339
|
+
* The dispatched event will always be of type {@link goog.ui.Dialog.Event}.
|
|
1340
|
+
* Canceling the event will prevent the dialog from closing.
|
|
1341
|
+
*/
|
|
1342
|
+
SELECT: 'dialogselect',
|
|
1343
|
+
|
|
1344
|
+
/**
|
|
1345
|
+
* Dispatched after the dialog is closed. Not cancelable.
|
|
1346
|
+
*/
|
|
1347
|
+
AFTER_HIDE: 'afterhide'
|
|
1348
|
+
};
|
|
1349
|
+
|
|
1350
|
+
|
|
1351
|
+
|
|
1352
|
+
/**
|
|
1353
|
+
* A button set defines the behaviour of a set of buttons that the dialog can
|
|
1354
|
+
* show. Uses the {@link goog.structs.Map} interface.
|
|
1355
|
+
* @param {goog.dom.DomHelper=} opt_domHelper Optional DOM helper; see {@link
|
|
1356
|
+
* goog.ui.Component} for semantics.
|
|
1357
|
+
* @constructor
|
|
1358
|
+
* @extends {goog.structs.Map}
|
|
1359
|
+
*/
|
|
1360
|
+
goog.ui.Dialog.ButtonSet = function(opt_domHelper) {
|
|
1361
|
+
// TODO(user): Refactor ButtonSet to extend goog.ui.Component?
|
|
1362
|
+
this.dom_ = opt_domHelper || goog.dom.getDomHelper();
|
|
1363
|
+
goog.structs.Map.call(this);
|
|
1364
|
+
};
|
|
1365
|
+
goog.inherits(goog.ui.Dialog.ButtonSet, goog.structs.Map);
|
|
1366
|
+
|
|
1367
|
+
|
|
1368
|
+
/**
|
|
1369
|
+
* A CSS className for this component.
|
|
1370
|
+
* @type {string}
|
|
1371
|
+
* @private
|
|
1372
|
+
*/
|
|
1373
|
+
goog.ui.Dialog.ButtonSet.prototype.class_ = goog.getCssName('goog-buttonset');
|
|
1374
|
+
|
|
1375
|
+
|
|
1376
|
+
/**
|
|
1377
|
+
* The button that has default focus (references key in buttons_ map).
|
|
1378
|
+
* @type {?string}
|
|
1379
|
+
* @private
|
|
1380
|
+
*/
|
|
1381
|
+
goog.ui.Dialog.ButtonSet.prototype.defaultButton_ = null;
|
|
1382
|
+
|
|
1383
|
+
|
|
1384
|
+
/**
|
|
1385
|
+
* Optional container the button set should be rendered into.
|
|
1386
|
+
* @type {Element}
|
|
1387
|
+
* @private
|
|
1388
|
+
*/
|
|
1389
|
+
goog.ui.Dialog.ButtonSet.prototype.element_ = null;
|
|
1390
|
+
|
|
1391
|
+
|
|
1392
|
+
/**
|
|
1393
|
+
* The button whose action is associated with the escape key and the X button
|
|
1394
|
+
* on the dialog.
|
|
1395
|
+
* @type {?string}
|
|
1396
|
+
* @private
|
|
1397
|
+
*/
|
|
1398
|
+
goog.ui.Dialog.ButtonSet.prototype.cancelButton_ = null;
|
|
1399
|
+
|
|
1400
|
+
|
|
1401
|
+
/**
|
|
1402
|
+
* Adds a button to the button set. Buttons will be displayed in the order they
|
|
1403
|
+
* are added.
|
|
1404
|
+
*
|
|
1405
|
+
* @param {string} key Key used to identify the button in events.
|
|
1406
|
+
* @param {string|Element} caption A string caption or a DOM node that can be
|
|
1407
|
+
* appended to a button element.
|
|
1408
|
+
* @param {boolean=} opt_isDefault Whether this button is the default button,
|
|
1409
|
+
* Dialog will dispatch for this button if enter is pressed.
|
|
1410
|
+
* @param {boolean=} opt_isCancel Whether this button has the same behaviour as
|
|
1411
|
+
* cancel. If escape is pressed this button will fire.
|
|
1412
|
+
* @return {!goog.ui.Dialog.ButtonSet} The button set, to make it easy to chain
|
|
1413
|
+
* "set" calls and build new ButtonSets.
|
|
1414
|
+
*/
|
|
1415
|
+
goog.ui.Dialog.ButtonSet.prototype.set = function(key, caption,
|
|
1416
|
+
opt_isDefault, opt_isCancel) {
|
|
1417
|
+
goog.structs.Map.prototype.set.call(this, key, caption);
|
|
1418
|
+
|
|
1419
|
+
if (opt_isDefault) {
|
|
1420
|
+
this.defaultButton_ = key;
|
|
1421
|
+
}
|
|
1422
|
+
if (opt_isCancel) {
|
|
1423
|
+
this.cancelButton_ = key;
|
|
1424
|
+
}
|
|
1425
|
+
|
|
1426
|
+
return this;
|
|
1427
|
+
};
|
|
1428
|
+
|
|
1429
|
+
|
|
1430
|
+
/**
|
|
1431
|
+
* Adds a button (an object with a key and caption) to this button set. Buttons
|
|
1432
|
+
* will be displayed in the order they are added.
|
|
1433
|
+
* @see goog.ui.Dialog.DefaultButtons
|
|
1434
|
+
* @param {!{key: string, caption: string}} button The button key and caption.
|
|
1435
|
+
* @param {boolean=} opt_isDefault Whether this button is the default button.
|
|
1436
|
+
* Dialog will dispatch for this button if enter is pressed.
|
|
1437
|
+
* @param {boolean=} opt_isCancel Whether this button has the same behavior as
|
|
1438
|
+
* cancel. If escape is pressed this button will fire.
|
|
1439
|
+
* @return {!goog.ui.Dialog.ButtonSet} The button set, to make it easy to chain
|
|
1440
|
+
* "addButton" calls and build new ButtonSets.
|
|
1441
|
+
*/
|
|
1442
|
+
goog.ui.Dialog.ButtonSet.prototype.addButton = function(button, opt_isDefault,
|
|
1443
|
+
opt_isCancel) {
|
|
1444
|
+
return this.set(button.key, button.caption, opt_isDefault, opt_isCancel);
|
|
1445
|
+
};
|
|
1446
|
+
|
|
1447
|
+
|
|
1448
|
+
/**
|
|
1449
|
+
* Attaches the button set to an element, rendering it inside.
|
|
1450
|
+
* @param {Element} el Container.
|
|
1451
|
+
*/
|
|
1452
|
+
goog.ui.Dialog.ButtonSet.prototype.attachToElement = function(el) {
|
|
1453
|
+
this.element_ = el;
|
|
1454
|
+
this.render();
|
|
1455
|
+
};
|
|
1456
|
+
|
|
1457
|
+
|
|
1458
|
+
/**
|
|
1459
|
+
* Renders the button set inside its container element.
|
|
1460
|
+
*/
|
|
1461
|
+
goog.ui.Dialog.ButtonSet.prototype.render = function() {
|
|
1462
|
+
if (this.element_) {
|
|
1463
|
+
this.element_.innerHTML = '';
|
|
1464
|
+
var domHelper = goog.dom.getDomHelper(this.element_);
|
|
1465
|
+
goog.structs.forEach(this, function(caption, key) {
|
|
1466
|
+
var button = domHelper.createDom('button', {'name': key}, caption);
|
|
1467
|
+
if (key == this.defaultButton_) {
|
|
1468
|
+
button.className = goog.getCssName(this.class_, 'default');
|
|
1469
|
+
}
|
|
1470
|
+
this.element_.appendChild(button);
|
|
1471
|
+
}, this);
|
|
1472
|
+
}
|
|
1473
|
+
};
|
|
1474
|
+
|
|
1475
|
+
|
|
1476
|
+
/**
|
|
1477
|
+
* Decorates the given element by adding any {@code button} elements found
|
|
1478
|
+
* among its descendants to the button set. The first button found is assumed
|
|
1479
|
+
* to be the default and will receive focus when the button set is rendered.
|
|
1480
|
+
* If a button with a name of {@link goog.ui.Dialog.DefaultButtonKeys.CANCEL}
|
|
1481
|
+
* is found, it is assumed to have "Cancel" semantics.
|
|
1482
|
+
* TODO(user): ButtonSet should be a goog.ui.Component. Really.
|
|
1483
|
+
* @param {Element} element The element to decorate; should contain buttons.
|
|
1484
|
+
*/
|
|
1485
|
+
goog.ui.Dialog.ButtonSet.prototype.decorate = function(element) {
|
|
1486
|
+
if (!element || element.nodeType != goog.dom.NodeType.ELEMENT) {
|
|
1487
|
+
return;
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
this.element_ = element;
|
|
1491
|
+
var buttons = this.element_.getElementsByTagName('button');
|
|
1492
|
+
for (var i = 0, button, key, caption; button = buttons[i]; i++) {
|
|
1493
|
+
// Buttons should have a "name" attribute and have their caption defined by
|
|
1494
|
+
// their innerHTML, but not everyone knows this, and we should play nice.
|
|
1495
|
+
key = button.name || button.id;
|
|
1496
|
+
caption = goog.dom.getTextContent(button) || button.value;
|
|
1497
|
+
if (key) {
|
|
1498
|
+
var isDefault = i == 0;
|
|
1499
|
+
var isCancel = button.name == goog.ui.Dialog.DefaultButtonKeys.CANCEL;
|
|
1500
|
+
this.set(key, caption, isDefault, isCancel);
|
|
1501
|
+
if (isDefault) {
|
|
1502
|
+
goog.dom.classes.add(button, goog.getCssName(this.class_,
|
|
1503
|
+
'default'));
|
|
1504
|
+
}
|
|
1505
|
+
}
|
|
1506
|
+
}
|
|
1507
|
+
};
|
|
1508
|
+
|
|
1509
|
+
|
|
1510
|
+
/**
|
|
1511
|
+
* Sets the default button.
|
|
1512
|
+
* @param {?string} key The default button.
|
|
1513
|
+
*/
|
|
1514
|
+
goog.ui.Dialog.ButtonSet.prototype.setDefault = function(key) {
|
|
1515
|
+
this.defaultButton_ = key;
|
|
1516
|
+
};
|
|
1517
|
+
|
|
1518
|
+
|
|
1519
|
+
/**
|
|
1520
|
+
* Returns the default button.
|
|
1521
|
+
* @return {?string} The default button.
|
|
1522
|
+
*/
|
|
1523
|
+
goog.ui.Dialog.ButtonSet.prototype.getDefault = function() {
|
|
1524
|
+
return this.defaultButton_;
|
|
1525
|
+
};
|
|
1526
|
+
|
|
1527
|
+
|
|
1528
|
+
/**
|
|
1529
|
+
* Sets the cancel button.
|
|
1530
|
+
* @param {?string} key The cancel button.
|
|
1531
|
+
*/
|
|
1532
|
+
goog.ui.Dialog.ButtonSet.prototype.setCancel = function(key) {
|
|
1533
|
+
this.cancelButton_ = key;
|
|
1534
|
+
};
|
|
1535
|
+
|
|
1536
|
+
|
|
1537
|
+
/**
|
|
1538
|
+
* Returns the cancel button.
|
|
1539
|
+
* @return {?string} The cancel button.
|
|
1540
|
+
*/
|
|
1541
|
+
goog.ui.Dialog.ButtonSet.prototype.getCancel = function() {
|
|
1542
|
+
return this.cancelButton_;
|
|
1543
|
+
};
|
|
1544
|
+
|
|
1545
|
+
|
|
1546
|
+
/**
|
|
1547
|
+
* Returns the HTML Button element.
|
|
1548
|
+
* @param {string} key The button to return.
|
|
1549
|
+
* @return {Element} The button, if found else null.
|
|
1550
|
+
*/
|
|
1551
|
+
goog.ui.Dialog.ButtonSet.prototype.getButton = function(key) {
|
|
1552
|
+
var buttons = this.getAllButtons();
|
|
1553
|
+
for (var i = 0, nextButton; nextButton = buttons[i]; i++) {
|
|
1554
|
+
if (nextButton.name == key || nextButton.id == key) {
|
|
1555
|
+
return nextButton;
|
|
1556
|
+
}
|
|
1557
|
+
}
|
|
1558
|
+
return null;
|
|
1559
|
+
};
|
|
1560
|
+
|
|
1561
|
+
|
|
1562
|
+
/**
|
|
1563
|
+
* Returns all the HTML Button elements in the button set container.
|
|
1564
|
+
* @return {NodeList} A live NodeList of the buttons.
|
|
1565
|
+
*/
|
|
1566
|
+
goog.ui.Dialog.ButtonSet.prototype.getAllButtons = function() {
|
|
1567
|
+
return this.element_.getElementsByTagName(goog.dom.TagName.BUTTON);
|
|
1568
|
+
};
|
|
1569
|
+
|
|
1570
|
+
|
|
1571
|
+
/**
|
|
1572
|
+
* Enables or disables a button in this set by key. If the button is not found,
|
|
1573
|
+
* does nothing.
|
|
1574
|
+
* @param {string} key The button to enable or disable.
|
|
1575
|
+
* @param {boolean} enabled True to enable; false to disable.
|
|
1576
|
+
*/
|
|
1577
|
+
goog.ui.Dialog.ButtonSet.prototype.setButtonEnabled = function(key, enabled) {
|
|
1578
|
+
var button = this.getButton(key);
|
|
1579
|
+
if (button) {
|
|
1580
|
+
button.disabled = !enabled;
|
|
1581
|
+
}
|
|
1582
|
+
};
|
|
1583
|
+
|
|
1584
|
+
|
|
1585
|
+
/**
|
|
1586
|
+
* Enables or disables all of the buttons in this set.
|
|
1587
|
+
* @param {boolean} enabled True to enable; false to disable.
|
|
1588
|
+
*/
|
|
1589
|
+
goog.ui.Dialog.ButtonSet.prototype.setAllButtonsEnabled = function(enabled) {
|
|
1590
|
+
var allButtons = this.getAllButtons();
|
|
1591
|
+
for (var i = 0, button; button = allButtons[i]; i++) {
|
|
1592
|
+
button.disabled = !enabled;
|
|
1593
|
+
}
|
|
1594
|
+
};
|
|
1595
|
+
|
|
1596
|
+
|
|
1597
|
+
/**
|
|
1598
|
+
* The keys used to identify standard buttons in events.
|
|
1599
|
+
* @enum {string}
|
|
1600
|
+
*/
|
|
1601
|
+
goog.ui.Dialog.DefaultButtonKeys = {
|
|
1602
|
+
OK: 'ok',
|
|
1603
|
+
CANCEL: 'cancel',
|
|
1604
|
+
YES: 'yes',
|
|
1605
|
+
NO: 'no',
|
|
1606
|
+
SAVE: 'save',
|
|
1607
|
+
CONTINUE: 'continue'
|
|
1608
|
+
};
|
|
1609
|
+
|
|
1610
|
+
|
|
1611
|
+
/**
|
|
1612
|
+
* @desc Standard caption for the dialog 'OK' button.
|
|
1613
|
+
* @private
|
|
1614
|
+
*/
|
|
1615
|
+
goog.ui.Dialog.MSG_DIALOG_OK_ = goog.getMsg('OK');
|
|
1616
|
+
|
|
1617
|
+
|
|
1618
|
+
/**
|
|
1619
|
+
* @desc Standard caption for the dialog 'Cancel' button.
|
|
1620
|
+
* @private
|
|
1621
|
+
*/
|
|
1622
|
+
goog.ui.Dialog.MSG_DIALOG_CANCEL_ = goog.getMsg('Cancel');
|
|
1623
|
+
|
|
1624
|
+
|
|
1625
|
+
/**
|
|
1626
|
+
* @desc Standard caption for the dialog 'Yes' button.
|
|
1627
|
+
* @private
|
|
1628
|
+
*/
|
|
1629
|
+
goog.ui.Dialog.MSG_DIALOG_YES_ = goog.getMsg('Yes');
|
|
1630
|
+
|
|
1631
|
+
|
|
1632
|
+
/**
|
|
1633
|
+
* @desc Standard caption for the dialog 'No' button.
|
|
1634
|
+
* @private
|
|
1635
|
+
*/
|
|
1636
|
+
goog.ui.Dialog.MSG_DIALOG_NO_ = goog.getMsg('No');
|
|
1637
|
+
|
|
1638
|
+
|
|
1639
|
+
/**
|
|
1640
|
+
* @desc Standard caption for the dialog 'Save' button.
|
|
1641
|
+
* @private
|
|
1642
|
+
*/
|
|
1643
|
+
goog.ui.Dialog.MSG_DIALOG_SAVE_ = goog.getMsg('Save');
|
|
1644
|
+
|
|
1645
|
+
|
|
1646
|
+
/**
|
|
1647
|
+
* @desc Standard caption for the dialog 'Continue' button.
|
|
1648
|
+
* @private
|
|
1649
|
+
*/
|
|
1650
|
+
goog.ui.Dialog.MSG_DIALOG_CONTINUE_ = goog.getMsg('Continue');
|
|
1651
|
+
|
|
1652
|
+
|
|
1653
|
+
/**
|
|
1654
|
+
* The default captions for the default buttons.
|
|
1655
|
+
* @enum {string}
|
|
1656
|
+
*/
|
|
1657
|
+
goog.ui.Dialog.DefaultButtonCaptions = {
|
|
1658
|
+
OK: goog.ui.Dialog.MSG_DIALOG_OK_,
|
|
1659
|
+
CANCEL: goog.ui.Dialog.MSG_DIALOG_CANCEL_,
|
|
1660
|
+
YES: goog.ui.Dialog.MSG_DIALOG_YES_,
|
|
1661
|
+
NO: goog.ui.Dialog.MSG_DIALOG_NO_,
|
|
1662
|
+
SAVE: goog.ui.Dialog.MSG_DIALOG_SAVE_,
|
|
1663
|
+
CONTINUE: goog.ui.Dialog.MSG_DIALOG_CONTINUE_
|
|
1664
|
+
};
|
|
1665
|
+
|
|
1666
|
+
|
|
1667
|
+
/**
|
|
1668
|
+
* The standard buttons (keys associated with captions).
|
|
1669
|
+
* @enum {!{key: string, caption: string}}
|
|
1670
|
+
*/
|
|
1671
|
+
goog.ui.Dialog.ButtonSet.DefaultButtons = {
|
|
1672
|
+
OK: {
|
|
1673
|
+
key: goog.ui.Dialog.DefaultButtonKeys.OK,
|
|
1674
|
+
caption: goog.ui.Dialog.DefaultButtonCaptions.OK
|
|
1675
|
+
},
|
|
1676
|
+
CANCEL: {
|
|
1677
|
+
key: goog.ui.Dialog.DefaultButtonKeys.CANCEL,
|
|
1678
|
+
caption: goog.ui.Dialog.DefaultButtonCaptions.CANCEL
|
|
1679
|
+
},
|
|
1680
|
+
YES: {
|
|
1681
|
+
key: goog.ui.Dialog.DefaultButtonKeys.YES,
|
|
1682
|
+
caption: goog.ui.Dialog.DefaultButtonCaptions.YES
|
|
1683
|
+
},
|
|
1684
|
+
NO: {
|
|
1685
|
+
key: goog.ui.Dialog.DefaultButtonKeys.NO,
|
|
1686
|
+
caption: goog.ui.Dialog.DefaultButtonCaptions.NO
|
|
1687
|
+
},
|
|
1688
|
+
SAVE: {
|
|
1689
|
+
key: goog.ui.Dialog.DefaultButtonKeys.SAVE,
|
|
1690
|
+
caption: goog.ui.Dialog.DefaultButtonCaptions.SAVE
|
|
1691
|
+
},
|
|
1692
|
+
CONTINUE: {
|
|
1693
|
+
key: goog.ui.Dialog.DefaultButtonKeys.CONTINUE,
|
|
1694
|
+
caption: goog.ui.Dialog.DefaultButtonCaptions.CONTINUE
|
|
1695
|
+
}
|
|
1696
|
+
};
|
|
1697
|
+
|
|
1698
|
+
|
|
1699
|
+
/**
|
|
1700
|
+
* Creates a new ButtonSet with a single 'OK' button, which is also set with
|
|
1701
|
+
* cancel button semantics so that pressing escape will close the dialog.
|
|
1702
|
+
* @return {!goog.ui.Dialog.ButtonSet} The created ButtonSet.
|
|
1703
|
+
*/
|
|
1704
|
+
goog.ui.Dialog.ButtonSet.createOk = function() {
|
|
1705
|
+
return new goog.ui.Dialog.ButtonSet().
|
|
1706
|
+
addButton(goog.ui.Dialog.ButtonSet.DefaultButtons.OK, true, true);
|
|
1707
|
+
};
|
|
1708
|
+
|
|
1709
|
+
|
|
1710
|
+
/**
|
|
1711
|
+
* Creates a new ButtonSet with 'OK' (default) and 'Cancel' buttons.
|
|
1712
|
+
* @return {!goog.ui.Dialog.ButtonSet} The created ButtonSet.
|
|
1713
|
+
*/
|
|
1714
|
+
goog.ui.Dialog.ButtonSet.createOkCancel = function() {
|
|
1715
|
+
return new goog.ui.Dialog.ButtonSet().
|
|
1716
|
+
addButton(goog.ui.Dialog.ButtonSet.DefaultButtons.OK, true).
|
|
1717
|
+
addButton(goog.ui.Dialog.ButtonSet.DefaultButtons.CANCEL, false, true);
|
|
1718
|
+
};
|
|
1719
|
+
|
|
1720
|
+
|
|
1721
|
+
/**
|
|
1722
|
+
* Creates a new ButtonSet with 'Yes' (default) and 'No' buttons.
|
|
1723
|
+
* @return {!goog.ui.Dialog.ButtonSet} The created ButtonSet.
|
|
1724
|
+
*/
|
|
1725
|
+
goog.ui.Dialog.ButtonSet.createYesNo = function() {
|
|
1726
|
+
return new goog.ui.Dialog.ButtonSet().
|
|
1727
|
+
addButton(goog.ui.Dialog.ButtonSet.DefaultButtons.YES, true).
|
|
1728
|
+
addButton(goog.ui.Dialog.ButtonSet.DefaultButtons.NO, false, true);
|
|
1729
|
+
};
|
|
1730
|
+
|
|
1731
|
+
|
|
1732
|
+
/**
|
|
1733
|
+
* Creates a new ButtonSet with 'Yes', 'No' (default), and 'Cancel' buttons.
|
|
1734
|
+
* @return {!goog.ui.Dialog.ButtonSet} The created ButtonSet.
|
|
1735
|
+
*/
|
|
1736
|
+
goog.ui.Dialog.ButtonSet.createYesNoCancel = function() {
|
|
1737
|
+
return new goog.ui.Dialog.ButtonSet().
|
|
1738
|
+
addButton(goog.ui.Dialog.ButtonSet.DefaultButtons.YES).
|
|
1739
|
+
addButton(goog.ui.Dialog.ButtonSet.DefaultButtons.NO, true).
|
|
1740
|
+
addButton(goog.ui.Dialog.ButtonSet.DefaultButtons.CANCEL, false, true);
|
|
1741
|
+
};
|
|
1742
|
+
|
|
1743
|
+
|
|
1744
|
+
/**
|
|
1745
|
+
* Creates a new ButtonSet with 'Continue', 'Save', and 'Cancel' (default)
|
|
1746
|
+
* buttons.
|
|
1747
|
+
* @return {!goog.ui.Dialog.ButtonSet} The created ButtonSet.
|
|
1748
|
+
*/
|
|
1749
|
+
goog.ui.Dialog.ButtonSet.createContinueSaveCancel = function() {
|
|
1750
|
+
return new goog.ui.Dialog.ButtonSet().
|
|
1751
|
+
addButton(goog.ui.Dialog.ButtonSet.DefaultButtons.CONTINUE).
|
|
1752
|
+
addButton(goog.ui.Dialog.ButtonSet.DefaultButtons.SAVE).
|
|
1753
|
+
addButton(goog.ui.Dialog.ButtonSet.DefaultButtons.CANCEL, true, true);
|
|
1754
|
+
};
|
|
1755
|
+
|
|
1756
|
+
|
|
1757
|
+
// TODO(user): These shared instances should be phased out.
|
|
1758
|
+
(function() {
|
|
1759
|
+
/** @deprecated Use goog.ui.Dialog.ButtonSet#createOk. */
|
|
1760
|
+
goog.ui.Dialog.ButtonSet.OK = goog.ui.Dialog.ButtonSet.createOk();
|
|
1761
|
+
|
|
1762
|
+
/** @deprecated Use goog.ui.Dialog.ButtonSet#createOkCancel. */
|
|
1763
|
+
goog.ui.Dialog.ButtonSet.OK_CANCEL =
|
|
1764
|
+
goog.ui.Dialog.ButtonSet.createOkCancel();
|
|
1765
|
+
|
|
1766
|
+
/** @deprecated Use goog.ui.Dialog.ButtonSet#createYesNo. */
|
|
1767
|
+
goog.ui.Dialog.ButtonSet.YES_NO = goog.ui.Dialog.ButtonSet.createYesNo();
|
|
1768
|
+
|
|
1769
|
+
/** @deprecated Use goog.ui.Dialog.ButtonSet#createYesNoCancel. */
|
|
1770
|
+
goog.ui.Dialog.ButtonSet.YES_NO_CANCEL =
|
|
1771
|
+
goog.ui.Dialog.ButtonSet.createYesNoCancel();
|
|
1772
|
+
|
|
1773
|
+
/** @deprecated Use goog.ui.Dialog.ButtonSet#createContinueSaveCancel. */
|
|
1774
|
+
goog.ui.Dialog.ButtonSet.CONTINUE_SAVE_CANCEL =
|
|
1775
|
+
goog.ui.Dialog.ButtonSet.createContinueSaveCancel();
|
|
1776
|
+
})();
|