@yandex/ymaps3-types
Version:
Types for ymaps3 maps library
56 lines (55 loc) • 1.79 kB
TypeScript
import { Context } from "../Entities";
import { YMapEntity, YMapGroupEntity } from "../YMapEnities";
type VerticalPosition = "top" | "bottom";
type ComputedVerticalPosition = "top" | "center" | "bottom";
type HorizontalPosition = "left" | "right";
type ComputedHorizontalPosition = "left" | "center" | "right";
type Orientation = "horizontal" | "vertical";
export type YMapControlContext = {
position: [
ComputedVerticalPosition,
ComputedHorizontalPosition,
Orientation
];
};
export declare const ControlContext: Context<YMapControlContext>;
/**
* Describes controls position.
*/
type Position = VerticalPosition | HorizontalPosition | `${VerticalPosition} ${HorizontalPosition}` | `${HorizontalPosition} ${VerticalPosition}`;
/**
* YMapControls props
*/
export type YMapControlsProps = {
/** Controls position. */
position: Position;
/** Controls orientation. */
orientation?: Orientation;
};
/**
* DOM container for grouping a number of controls to group and position them
* @example
*```javascript
* const map = new YMap(document.getElementById('map-root'), {
* location: [37.622504, 55.753215],
* mode: 'raster'
* });
* const controls = new YMapControls({position: 'top left horizontal'});
* const button = text => new YMapControlButton({
* text: 'Click me',
* onClick: () => {
* alert('Click');
* }
* });
* map.addChild(controls);
* ```
*/
export declare class YMapControls extends YMapGroupEntity<YMapControlsProps> {
private _element?;
private _detachDom?;
constructor(props: YMapControlsProps, children?: YMapEntity<unknown>[]);
protected _onAttach(): void;
protected _onUpdate(diffProps: Partial<YMapControlsProps>): void;
protected _onDetach(): void;
}
export {};