aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/ui/zippy.js
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/ui/zippy.js')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/ui/zippy.js443
1 files changed, 0 insertions, 443 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/ui/zippy.js b/contexts/data/lib/closure-library/closure/goog/ui/zippy.js
deleted file mode 100644
index 354486e..0000000
--- a/contexts/data/lib/closure-library/closure/goog/ui/zippy.js
+++ /dev/null
@@ -1,443 +0,0 @@
-// Copyright 2006 The Closure Library Authors. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS-IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-/**
- * @fileoverview Zippy widget implementation.
- *
- * @author eae@google.com (Emil A Eklund)
- * @see ../demos/zippy.html
- */
-
-goog.provide('goog.ui.Zippy');
-goog.provide('goog.ui.Zippy.Events');
-goog.provide('goog.ui.ZippyEvent');
-
-goog.require('goog.dom');
-goog.require('goog.dom.a11y');
-goog.require('goog.dom.classes');
-goog.require('goog.events');
-goog.require('goog.events.Event');
-goog.require('goog.events.EventHandler');
-goog.require('goog.events.EventTarget');
-goog.require('goog.events.EventType');
-goog.require('goog.events.KeyCodes');
-goog.require('goog.style');
-
-
-
-/**
- * Zippy widget. Expandable/collapsible container, clicking the header toggles
- * the visibility of the content.
- *
- * @extends {goog.events.EventTarget}
- * @param {Element|string|null} header Header element, either element
- * reference, string id or null if no header exists.
- * @param {Element|string|function():Element=} opt_content Content element
- * (if any), either element reference or string id. If skipped, the caller
- * should handle the TOGGLE event in its own way. If a function is passed,
- * then if will be called to create the content element the first time the
- * zippy is expanded.
- * @param {boolean=} opt_expanded Initial expanded/visibility state. Defaults to
- * false.
- * @param {Element|string=} opt_expandedHeader Element to use as the header when
- * the zippy is expanded.
- * @param {goog.dom.DomHelper=} opt_domHelper An optional DOM helper.
- * @constructor
- */
-goog.ui.Zippy = function(header, opt_content, opt_expanded,
- opt_expandedHeader, opt_domHelper) {
- goog.base(this);
-
- /**
- * DomHelper used to interact with the document, allowing components to be
- * created in a different window.
- * @type {!goog.dom.DomHelper}
- * @private
- */
- this.dom_ = opt_domHelper || goog.dom.getDomHelper();
-
- /**
- * Header element or null if no header exists.
- * @type {Element}
- * @private
- */
- this.elHeader_ = this.dom_.getElement(header) || null;
-
- /**
- * When present, the header to use when the zippy is expanded.
- * @type {Element}
- * @private
- */
- this.elExpandedHeader_ = this.dom_.getElement(opt_expandedHeader || null);
-
- /**
- * Function that will create the content element, or false if there is no such
- * function.
- * @type {?function():Element}
- * @private
- */
- this.lazyCreateFunc_ = goog.isFunction(opt_content) ? opt_content : null;
-
- /**
- * Content element.
- * @type {Element}
- * @private
- */
- this.elContent_ = this.lazyCreateFunc_ || !opt_content ? null :
- this.dom_.getElement(/** @type {Element} */ (opt_content));
-
- /**
- * Expanded state.
- * @type {boolean}
- * @private
- */
- this.expanded_ = opt_expanded == true;
-
- /**
- * A keyboard events handler. If there are two headers it is shared for both.
- * @type {goog.events.EventHandler}
- * @private
- */
- this.keyboardEventHandler_ = new goog.events.EventHandler(this);
-
- /**
- * A mouse events handler. If there are two headers it is shared for both.
- * @type {goog.events.EventHandler}
- * @private
- */
- this.mouseEventHandler_ = new goog.events.EventHandler(this);
-
- var self = this;
- function addHeaderEvents(el) {
- if (el) {
- el.tabIndex = 0;
- goog.dom.a11y.setRole(el, self.getAriaRole());
- goog.dom.classes.add(el, goog.getCssName('goog-zippy-header'));
- self.enableMouseEventsHandling_(el);
- self.enableKeyboardEventsHandling_(el);
- }
- }
- addHeaderEvents(this.elHeader_);
- addHeaderEvents(this.elExpandedHeader_);
-
- // initialize based on expanded state
- this.setExpanded(this.expanded_);
-};
-goog.inherits(goog.ui.Zippy, goog.events.EventTarget);
-
-
-/**
- * Constants for event names
- *
- * @type {Object}
- */
-goog.ui.Zippy.Events = {
- // Zippy will dispatch an ACTION event for user interaction. Mimics
- // {@code goog.ui.Controls#performActionInternal} by first changing
- // the toggle state and then dispatching an ACTION event.
- ACTION: 'action',
- // Zippy state is toggled from collapsed to expanded or vice versa.
- TOGGLE: 'toggle'
-};
-
-
-/**
- * Whether to listen for and handle mouse events; defaults to true.
- * @type {boolean}
- * @private
- */
-goog.ui.Zippy.prototype.handleMouseEvents_ = true;
-
-
-/**
- * Whether to listen for and handle key events; defaults to true.
- * @type {boolean}
- * @private
- */
-goog.ui.Zippy.prototype.handleKeyEvents_ = true;
-
-
-/** @override */
-goog.ui.Zippy.prototype.disposeInternal = function() {
- goog.base(this, 'disposeInternal');
- goog.dispose(this.keyboardEventHandler_);
- goog.dispose(this.mouseEventHandler_);
-};
-
-
-/**
- * @return {goog.dom.a11y.Role} The ARIA role to be applied to Zippy element.
- */
-goog.ui.Zippy.prototype.getAriaRole = function() {
- return goog.dom.a11y.Role.TAB;
-};
-
-
-/**
- * @return {Element} The content element.
- */
-goog.ui.Zippy.prototype.getContentElement = function() {
- return this.elContent_;
-};
-
-
-/**
- * @return {Element} The visible header element.
- */
-goog.ui.Zippy.prototype.getVisibleHeaderElement = function() {
- var expandedHeader = this.elExpandedHeader_;
- return expandedHeader && goog.style.isElementShown(expandedHeader) ?
- expandedHeader : this.elHeader_;
-};
-
-
-/**
- * Expands content pane.
- */
-goog.ui.Zippy.prototype.expand = function() {
- this.setExpanded(true);
-};
-
-
-/**
- * Collapses content pane.
- */
-goog.ui.Zippy.prototype.collapse = function() {
- this.setExpanded(false);
-};
-
-
-/**
- * Toggles expanded state.
- */
-goog.ui.Zippy.prototype.toggle = function() {
- this.setExpanded(!this.expanded_);
-};
-
-
-/**
- * Sets expanded state.
- *
- * @param {boolean} expanded Expanded/visibility state.
- */
-goog.ui.Zippy.prototype.setExpanded = function(expanded) {
- if (this.elContent_) {
- // Hide the element, if one is provided.
- goog.style.showElement(this.elContent_, expanded);
- } else if (expanded && this.lazyCreateFunc_) {
- // Assume that when the element is not hidden upon creation.
- this.elContent_ = this.lazyCreateFunc_();
- }
- if (this.elContent_) {
- goog.dom.classes.add(this.elContent_,
- goog.getCssName('goog-zippy-content'));
- }
-
- if (this.elExpandedHeader_) {
- // Hide the show header and show the hide one.
- goog.style.showElement(this.elHeader_, !expanded);
- goog.style.showElement(this.elExpandedHeader_, expanded);
- } else {
- // Update header image, if any.
- this.updateHeaderClassName(expanded);
- }
-
- this.setExpandedInternal(expanded);
-
- // Fire toggle event
- this.dispatchEvent(new goog.ui.ZippyEvent(goog.ui.Zippy.Events.TOGGLE,
- this, this.expanded_));
-};
-
-
-/**
- * Sets expanded internal state.
- *
- * @param {boolean} expanded Expanded/visibility state.
- * @protected
- */
-goog.ui.Zippy.prototype.setExpandedInternal = function(expanded) {
- this.expanded_ = expanded;
-};
-
-
-/**
- * @return {boolean} Whether the zippy is expanded.
- */
-goog.ui.Zippy.prototype.isExpanded = function() {
- return this.expanded_;
-};
-
-
-/**
- * Updates the header element's className and ARIA (accessibility) EXPANDED
- * state.
- *
- * @param {boolean} expanded Expanded/visibility state.
- * @protected
- */
-goog.ui.Zippy.prototype.updateHeaderClassName = function(expanded) {
- if (this.elHeader_) {
- goog.dom.classes.enable(this.elHeader_,
- goog.getCssName('goog-zippy-expanded'), expanded);
- goog.dom.classes.enable(this.elHeader_,
- goog.getCssName('goog-zippy-collapsed'), !expanded);
- goog.dom.a11y.setState(
- this.elHeader_, goog.dom.a11y.State.EXPANDED, expanded);
- }
-};
-
-
-/**
- * @return {boolean} Whether the Zippy handles its own key events.
- */
-goog.ui.Zippy.prototype.isHandleMouseEvents = function() {
- return this.handleKeyEvents_;
-};
-
-
-/**
- * @return {boolean} Whether the Zippy handles its own mouse events.
- */
-goog.ui.Zippy.prototype.isHandleKeyEvents = function() {
- return this.handleMouseEvents_;
-};
-
-
-/**
- * Sets whether the Zippy handles it's own keyboard events.
- * @param {boolean} enable Whether the Zippy handles keyboard events.
- */
-goog.ui.Zippy.prototype.setHandleKeyboardEvents = function(enable) {
- if (this.handleKeyEvents_ != enable) {
- this.handleKeyEvents_ = enable;
- if (enable) {
- this.enableKeyboardEventsHandling_(this.elHeader_);
- this.enableKeyboardEventsHandling_(this.elExpandedHeader_);
- } else {
- this.keyboardEventHandler_.removeAll();
- }
- }
-};
-
-
-/**
- * Sets whether the Zippy handles it's own mouse events.
- * @param {boolean} enable Whether the Zippy handles mouse events.
- */
-goog.ui.Zippy.prototype.setHandleMouseEvents = function(enable) {
- if (this.handleMouseEvents_ != enable) {
- this.handleMouseEvents_ = enable;
- if (enable) {
- this.enableMouseEventsHandling_(this.elHeader_);
- this.enableMouseEventsHandling_(this.elExpandedHeader_);
- } else {
- this.mouseEventHandler_.removeAll();
- }
- }
-};
-
-
-/**
- * Enables keyboard events handling for the passed header element.
- * @param {Element} header The header element.
- * @private
- */
-goog.ui.Zippy.prototype.enableKeyboardEventsHandling_ = function(header) {
- if (header) {
- this.keyboardEventHandler_.listen(header, goog.events.EventType.KEYDOWN,
- this.onHeaderKeyDown_);
- }
-};
-
-
-/**
- * Enables mouse events handling for the passed header element.
- * @param {Element} header The header element.
- * @private
- */
-goog.ui.Zippy.prototype.enableMouseEventsHandling_ = function(header) {
- if (header) {
- this.mouseEventHandler_.listen(header, goog.events.EventType.CLICK,
- this.onHeaderClick_);
- }
-};
-
-
-/**
- * KeyDown event handler for header element. Enter and space toggles expanded
- * state.
- *
- * @param {goog.events.BrowserEvent} event KeyDown event.
- * @private
- */
-goog.ui.Zippy.prototype.onHeaderKeyDown_ = function(event) {
- if (event.keyCode == goog.events.KeyCodes.ENTER ||
- event.keyCode == goog.events.KeyCodes.SPACE) {
-
- this.toggle();
- this.dispatchActionEvent_();
-
- // Prevent enter key from submitting form.
- event.preventDefault();
-
- event.stopPropagation();
- }
-};
-
-
-/**
- * Click event handler for header element.
- *
- * @param {goog.events.BrowserEvent} event Click event.
- * @private
- */
-goog.ui.Zippy.prototype.onHeaderClick_ = function(event) {
- this.toggle();
- this.dispatchActionEvent_();
-};
-
-
-/**
- * Dispatch an ACTION event whenever there is user interaction with the header.
- * Please note that after the zippy state change is completed a TOGGLE event
- * will be dispatched. However, the TOGGLE event is dispatch on every toggle,
- * including programmatic call to {@code #toggle}.
- * @private
- */
-goog.ui.Zippy.prototype.dispatchActionEvent_ = function() {
- this.dispatchEvent(new goog.events.Event(goog.ui.Zippy.Events.ACTION, this));
-};
-
-
-
-/**
- * Object representing a zippy toggle event.
- *
- * @param {string} type Event type.
- * @param {goog.ui.Zippy} target Zippy widget initiating event.
- * @param {boolean} expanded Expanded state.
- * @extends {goog.events.Event}
- * @constructor
- */
-goog.ui.ZippyEvent = function(type, target, expanded) {
- goog.base(this, type, target);
-
- /**
- * The expanded state.
- * @type {boolean}
- */
- this.expanded = expanded;
-};
-goog.inherits(goog.ui.ZippyEvent, goog.events.Event);