chromium/third_party/polymer/v3_0/components-chromium/iron-dropdown/iron-dropdown.d.ts

/**
 * DO NOT EDIT
 *
 * This file was automatically generated by
 *   https://github.com/Polymer/tools/tree/master/packages/gen-typescript-declarations
 *
 * To modify these typings, edit the source file(s):
 *   iron-dropdown.js
 */

import {IronA11yKeysBehavior} from '../iron-a11y-keys-behavior/iron-a11y-keys-behavior.js';

import {IronControlState} from '../iron-behaviors/iron-control-state.js';

import {IronOverlayBehavior, IronOverlayBehaviorImpl} from '../iron-overlay-behavior/iron-overlay-behavior.js';

import {NeonAnimationRunnerBehavior} from '../neon-animation/neon-animation-runner-behavior.js';

import {Polymer} from '../polymer/lib/legacy/polymer-fn.js';

import {dom} from '../polymer/lib/legacy/polymer.dom.js';

import {html} from '../polymer/lib/utils/html-tag.js';

import {LegacyElementMixin} from '../polymer/lib/legacy/legacy-element-mixin.js';

/**
 * `<iron-dropdown>` is a generalized element that is useful when you have
 * hidden content (`dropdown-content`) that is revealed due to some change in
 * state that should cause it to do so.
 *
 * Note that this is a low-level element intended to be used as part of other
 * composite elements that cause dropdowns to be revealed.
 *
 * Examples of elements that might be implemented using an `iron-dropdown`
 * include comboboxes, menubuttons, selects. The list goes on.
 *
 * The `<iron-dropdown>` element exposes attributes that allow the position
 * of the `dropdown-content` relative to the `dropdown-trigger` to be
 * configured.
 *
 *     <iron-dropdown horizontal-align="right" vertical-align="top">
 *       <div slot="dropdown-content">Hello!</div>
 *     </iron-dropdown>
 *
 * In the above example, the `<div>` assigned to the `dropdown-content` slot will
 * be hidden until the dropdown element has `opened` set to true, or when the
 * `open` method is called on the element.
 */
interface IronDropdownElement extends IronControlState, IronA11yKeysBehavior, IronOverlayBehavior, NeonAnimationRunnerBehavior, LegacyElementMixin, HTMLElement {

  /**
   * The orientation against which to align the dropdown content
   * horizontally relative to the dropdown trigger.
   * Overridden from `Polymer.IronFitBehavior`.
   */
  horizontalAlign: string|null|undefined;

  /**
   * The orientation against which to align the dropdown content
   * vertically relative to the dropdown trigger.
   * Overridden from `Polymer.IronFitBehavior`.
   */
  verticalAlign: string|null|undefined;

  /**
   * An animation config. If provided, this will be used to animate the
   * opening of the dropdown. Pass an Array for multiple animations.
   * See `neon-animation` documentation for more animation configuration
   * details.
   */
  openAnimationConfig: object|null|undefined;

  /**
   * An animation config. If provided, this will be used to animate the
   * closing of the dropdown. Pass an Array for multiple animations.
   * See `neon-animation` documentation for more animation configuration
   * details.
   */
  closeAnimationConfig: object|null|undefined;

  /**
   * If provided, this will be the element that will be focused when
   * the dropdown opens.
   */
  focusTarget: object|null|undefined;

  /**
   * Set to true to disable animations when opening and closing the
   * dropdown.
   */
  noAnimations: boolean|null|undefined;

  /**
   * By default, the dropdown will constrain scrolling on the page
   * to itself when opened.
   * Set to true in order to prevent scroll from being constrained
   * to the dropdown when it opens.
   * This property is a shortcut to set `scrollAction` to lock or refit.
   * Prefer directly setting the `scrollAction` property.
   */
  allowOutsideScroll: boolean|null|undefined;

  /**
   * The element that is contained by the dropdown, if any.
   *    
   */
  readonly containedElement: any;
  ready(): void;
  attached(): void;
  detached(): void;

  /**
   * Called when the value of `opened` changes.
   * Overridden from `IronOverlayBehavior`
   */
  _openedChanged(): void;

  /**
   * Overridden from `IronOverlayBehavior`.
   */
  _renderOpened(): void;

  /**
   * Overridden from `IronOverlayBehavior`.
   */
  _renderClosed(): void;

  /**
   * Apply focus to focusTarget or containedElement
   */
  _applyFocus(): void;

  /**
   * Called when animation finishes on the dropdown (when opening or
   * closing). Responsible for "completing" the process of opening or
   * closing the dropdown by positioning it or setting its display to
   * none.
   */
  _onNeonAnimationFinish(): void;

  /**
   * Constructs the final animation config from different properties used
   * to configure specific parts of the opening and closing animations.
   */
  _updateAnimationConfig(): void;

  /**
   * Updates the overlay position based on configured horizontal
   * and vertical alignment.
   */
  _updateOverlayPosition(): void;

  /**
   * Sets scrollAction according to the value of allowOutsideScroll.
   * Prefer setting directly scrollAction.
   */
  _allowOutsideScrollChanged(allowOutsideScroll: any): void;
}

export {IronDropdownElement};

declare global {

  interface HTMLElementTagNameMap {
    "iron-dropdown": IronDropdownElement;
  }
}