ol
Version:
OpenLayers mapping library
191 lines • 6.27 kB
TypeScript
export default FullScreen;
/**
* *
*/
export type FullScreenOnSignature<Return> = import("../Observable").OnSignature<import("../Observable").EventTypes | "enterfullscreen" | "leavefullscreen", import("../events/Event.js").default, Return> & import("../Observable").OnSignature<import("../ObjectEventType").Types, import("../Object").ObjectEvent, Return> & import("../Observable").CombinedOnSignature<import("../Observable").EventTypes | "enterfullscreen" | "leavefullscreen" | import("../ObjectEventType").Types, Return>;
export type Options = {
/**
* CSS class name.
*/
className?: string | undefined;
/**
* Text label to use for the button.
* Instead of text, also an element (e.g. a `span` element) can be used.
*/
label?: string | HTMLElement | Text | undefined;
/**
* Text label to use for the
* button when full-screen is active.
* Instead of text, also an element (e.g. a `span` element) can be used.
*/
labelActive?: string | HTMLElement | Text | undefined;
/**
* CSS class name for the button
* when full-screen is active.
*/
activeClassName?: string | undefined;
/**
* CSS class name for the button
* when full-screen is inactive.
*/
inactiveClassName?: string | undefined;
/**
* Text label to use for the button tip.
*/
tipLabel?: string | undefined;
/**
* Full keyboard access.
*/
keys?: boolean | undefined;
/**
* Specify a target if you want the
* control to be rendered outside of the map's viewport.
*/
target?: string | HTMLElement | undefined;
/**
* The element to be displayed
* fullscreen. When not provided, the element containing the map viewport will
* be displayed fullscreen.
*/
source?: string | HTMLElement | undefined;
};
/***
* @template Return
* @typedef {import("../Observable").OnSignature<import("../Observable").EventTypes|
* 'enterfullscreen'|'leavefullscreen', import("../events/Event.js").default, Return> &
* import("../Observable").OnSignature<import("../ObjectEventType").Types, import("../Object").ObjectEvent, Return> &
* import("../Observable").CombinedOnSignature<import("../Observable").EventTypes|
* 'enterfullscreen'|'leavefullscreen'|import("../ObjectEventType").Types, Return>} FullScreenOnSignature
*/
/**
* @typedef {Object} Options
* @property {string} [className='ol-full-screen'] CSS class name.
* @property {string|Text|HTMLElement} [label='\u2922'] Text label to use for the button.
* Instead of text, also an element (e.g. a `span` element) can be used.
* @property {string|Text|HTMLElement} [labelActive='\u00d7'] Text label to use for the
* button when full-screen is active.
* Instead of text, also an element (e.g. a `span` element) can be used.
* @property {string} [activeClassName=className + '-true'] CSS class name for the button
* when full-screen is active.
* @property {string} [inactiveClassName=className + '-false'] CSS class name for the button
* when full-screen is inactive.
* @property {string} [tipLabel='Toggle full-screen'] Text label to use for the button tip.
* @property {boolean} [keys=false] Full keyboard access.
* @property {HTMLElement|string} [target] Specify a target if you want the
* control to be rendered outside of the map's viewport.
* @property {HTMLElement|string} [source] The element to be displayed
* fullscreen. When not provided, the element containing the map viewport will
* be displayed fullscreen.
*/
/**
* @classdesc
* Provides a button that when clicked fills up the full screen with the map.
* The full screen source element is by default the element containing the map viewport unless
* overridden by providing the `source` option. In which case, the dom
* element introduced using this parameter will be displayed in full screen.
*
* When in full screen mode, a close button is shown to exit full screen mode.
* The [Fullscreen API](https://www.w3.org/TR/fullscreen/) is used to
* toggle the map in full screen mode.
*
* @fires FullScreenEventType#enterfullscreen
* @fires FullScreenEventType#leavefullscreen
* @api
*/
declare class FullScreen extends Control {
/**
* @param {Options} [options] Options.
*/
constructor(options?: Options);
/***
* @type {FullScreenOnSignature<import("../events").EventsKey>}
*/
on: FullScreenOnSignature<import("../events").EventsKey>;
/***
* @type {FullScreenOnSignature<import("../events").EventsKey>}
*/
once: FullScreenOnSignature<import("../events").EventsKey>;
/***
* @type {FullScreenOnSignature<void>}
*/
un: FullScreenOnSignature<void>;
/**
* @private
* @type {boolean}
*/
private keys_;
/**
* @private
* @type {HTMLElement|string|undefined}
*/
private source_;
/**
* @type {boolean}
* @private
*/
private isInFullscreen_;
/**
* @private
*/
private boundHandleMapTargetChange_;
/**
* @private
* @type {string}
*/
private cssClassName_;
/**
* @private
* @type {Array<import("../events.js").EventsKey>}
*/
private documentListeners_;
/**
* @private
* @type {Array<string>}
*/
private activeClassName_;
/**
* @private
* @type {Array<string>}
*/
private inactiveClassName_;
/**
* @private
* @type {Text|HTMLElement}
*/
private labelNode_;
/**
* @private
* @type {Text|HTMLElement}
*/
private labelActiveNode_;
/**
* @private
* @type {HTMLElement}
*/
private button_;
/**
* @param {MouseEvent} event The event to handle
* @private
*/
private handleClick_;
/**
* @private
*/
private handleFullScreen_;
/**
* @private
*/
private handleFullScreenChange_;
/**
* @param {HTMLElement} element Target element
* @param {boolean} fullscreen True if fullscreen class name should be active
* @private
*/
private setClassName_;
/**
* @private
*/
private handleMapTargetChange_;
}
import Control from './Control.js';
//# sourceMappingURL=FullScreen.d.ts.map