Files
openlayers/src/objectliterals.jsdoc
2014-03-14 10:16:25 +01:00

1136 lines
52 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* @typedef {Object} olx.AttributionOptions
* @property {string} html HTML markup for this attribution.
* @property {Object.<string, Array.<ol.TileRange>>|undefined} tileRanges
* Tile ranges (FOR INTERNAL USE ONLY).
* @todo stability experimental
*/
/**
* @typedef {Object} olx.DeviceOptions
* @property {boolean|undefined} loadTilesWhileAnimating When set to false,
* no tiles will be loaded while animating, which improves responsiveness
* on devices with slow memory. Default is `true`.
* @property {boolean|undefined} loadTilesWhileInteracting When set to false,
* no tiles will be loaded while interacting, which improves responsiveness
* on devices with slow memory. Default is `true`.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.DeviceOrientationOptions
* @property {boolean|undefined} tracking Start tracking. Default is `false`.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.GeolocationOptions
* @property {boolean|undefined} tracking Start Tracking. Default is `false`.
* @property {GeolocationPositionOptions|undefined} trackingOptions Tracking options.
* @property {ol.proj.ProjectionLike} projection Projection.
* @todo stability experimental
*/
/**
* Object literal with config options for the map.
* @typedef {Object} olx.MapOptions
* @property {ol.Collection|Array.<ol.control.Control>|undefined} controls
* Controls initially added to the map.
* @property {olx.DeviceOptions|undefined} deviceOptions
* Device options for the map.
* @property {number|undefined} pixelRatio The ratio between physical
* pixels and device-independent pixels (dips) on the device. If `undefined`
* then it gets set by using `window.devicePixelRatio`.
* @property {ol.Collection|Array.<ol.interaction.Interaction>|undefined} interactions
* Interactions that are initially added to the map.
* @property {Element|Document|string|undefined} keyboardEventTarget
* The element to listen to keyboard events on.
* This determines when the `KeyboardPan` and `KeyboardZoom` interactions trigger. For example, if
* this option is set to `document` the keyboard interactions will always trigger. If this option
* is not specified, the element the library listens to keyboard events on is the map target (i.e.
* the user-provided div for the map). If this is not `document` the target element needs to be
* focused for key events to be emitted, requiring that the target element has a `tabindex`
* attribute.
* @property {Array.<ol.layer.Base>|ol.Collection|undefined} layers Layers.
* @property {boolean|undefined} ol3Logo Show ol3 logo. Default is `true`.
* @property {ol.Collection|Array.<ol.Overlay>|undefined} overlays
* Overlays initially added to the map.
* @property {ol.RendererHint|Array.<ol.RendererHint|string>|string|undefined} renderer Renderer.
* @property {Element|string|undefined} target The container for the map.
* @property {ol.IView|undefined} view The map's view. Currently
* {@link ol.View2D} is available as view.
* @todo stability experimental
*/
/**
* Object literal with config options for the overlay.
* @typedef {Object} olx.OverlayOptions
* @property {Element|undefined} element The overlay element.
* @property {ol.Coordinate|undefined} position The overlay position in map
* projection.
* @property {ol.OverlayPositioning|string|undefined} positioning Positioning.
* @property {boolean|undefined} stopEvent Whether event propagation to the map
* viewport should be stopped. Default is `true`. If `true` the overlay is
* placed in the same container as that of the controls
* (`ol-overlaycontainer-stopevent`).
* @property {boolean|undefined} insertFirst Whether the overlay is inserted
* first in the overlay container, or appended. Default is `true`. If the
* overlay is placed in the same container as that of the controls (see
* the `stopEvent` option) you will probably set `insertFirst` to `true`
* so the overlay is displayed below the controls.
* @property {number|undefined} offsetX Horizontal offset in pixels.
* A positive will shift the overlay right. Default is `0`.
* @property {number|undefined} offsetY Vertical offset in pixels.
* A positive will shift the overlay down. Default is `0`.
* @todo stability experimental
*/
/**
* Object literal with config options for the Proj4js projection.
* @typedef {Object} olx.Proj4jsProjectionOptions
* @property {string} code The SRS identifier code, e.g. `EPSG:31256`.
* @property {ol.Extent|undefined} extent The validity extent for the SRS.
* @property {boolean|undefined} global Whether the projection is valid for the
* whole globe. Default is `false`.
* @todo stability experimental
*/
/**
* Object literal with config options for the projection.
* @typedef {Object} olx.ProjectionOptions
* @property {string} code The SRS identifier code, e.g. `EPSG:4326`.
* @property {ol.proj.Units|string} units Units.
* @property {ol.Extent|undefined} extent The validity extent for the SRS.
* @property {string|undefined} axisOrientation The axis orientation as
* specified in Proj4. The default is `enu`.
* @property {boolean|undefined} global Whether the projection is valid for the
* whole globe. Default is `false`.
* @todo stability experimental
*/
/**
* Object literal with config options for the view.
* @typedef {Object} olx.View2DOptions
* @property {ol.Coordinate|undefined} center The initial center for the view.
* The coordinate system for the center is specified with the `projection`
* option. Default is `undefined`, and layer sources will not be fetched if
* this is not set.
* @property {boolean|number|undefined} constrainRotation Rotation constraint.
* `false` means no constraint. `true` means no constraint, but snap to
* zero near zero. A number constraints the rotation to that number of
* values. For example, `4` will constrain the rotation to 0, 90, 180, and
* 270 degrees. The default is `true`.
* @property {boolean|undefined} enableRotation Enable rotation. Default is
* `true`.
* @property {ol.Extent|undefined} extent The extent that constrains the center,
* in other words, center cannot be set outside this extent.
* Default is `undefined`.
* @property {number|undefined} maxResolution The maximum resolution used to
* determine the resolution constraint. It is used together with `maxZoom`
* and `zoomFactor`. If unspecified it is calculated in such a way that the
* projection's validity extent fits in a 256x256 px tile. If the projection
* is Spherical Mercator (the default) then `maxResolution` defaults to
* `40075016.68557849 / 256 = 156543.03392804097`.
* @property {number|undefined} maxZoom The maximum zoom level used to determine
* the resolution constraint. It is used together with `maxResolution` and
* `zoomFactor`. Default is `28`.
* @property {ol.proj.ProjectionLike} projection The projection. Default is
* `EPSG:3857` (Spherical Mercator).
* @property {number|undefined} resolution The initial resolution for the view.
* The units are `projection` units per pixel (e.g. meters per pixel).
* An alternative to setting this is to set `zoom`. Default is `undefined`,
* and layer sources will not be fetched if neither this nor `zoom` are
* defined.
* @property {Array.<number>|undefined} resolutions Resolutions to determine the
* resolution constraint. If set the `maxResolution`, `maxZoom` and
* `zoomFactor` options are ignored.
* @property {number|undefined} rotation The initial rotation for the view
* in radians (positive rotation clockwise). Default is `0`.
* @property {number|undefined} zoom Only used if `resolution` is not defined.
* Zoom level used to calculate the initial resolution for the view.
* The initial resolution is determined using the
* `ol.View2D#constrainResolution` method.
* @property {number|undefined} zoomFactor The zoom factor used to determine the
* resolution constraint. Used together with `maxResolution` and `maxZoom`.
* Default is `2`.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.animation.BounceOptions
* @property {number} resolution The resolution to start the bounce from, typically `map.getView().getResolution()`.
* @property {number|undefined} start The start time of the animation. Default is immediately.
* @property {number|undefined} duration The duration of the animation in milliseconds. Default is `1000`.
* @property {function(number):number|undefined} easing The easing function to use. Default is `ol.easing.upAndDown`
* @todo stability experimental
*/
/**
* @typedef {Object} olx.animation.PanOptions
* @property {ol.Coordinate} source The location to start panning from, typically `map.getView().getCenter()`.
* @property {number|undefined} start The start time of the animation. Default is immediately.
* @property {number|undefined} duration The duration of the animation in milliseconds. Default is `1000`.
* @property {function(number):number|undefined} easing The easing function to use. Default is `ol.easing.inAndOut`
* @todo stability experimental
*/
/**
* @typedef {Object} olx.animation.RotateOptions
* @property {number} rotation The rotation to apply, in radians.
* @property {number|undefined} start The start time of the animation. Default is immediately.
* @property {number|undefined} duration The duration of the animation in milliseconds. Default is `1000`.
* @property {function(number):number|undefined} easing The easing function to use. Default is `ol.easing.inAndOut`
* @todo stability experimental
*/
/**
* @typedef {Object} olx.animation.ZoomOptions
* @property {number} resolution number The resolution to begin zooming from, typically `map.getView().getResolution()`.
* @property {number|undefined} start The start time of the animation. Default is immediately.
* @property {number|undefined} duration The duration of the animation in milliseconds. Default is `1000`.
* @property {function(number):number|undefined} easing Easing function.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.control.AttributionOptions
* @property {string|undefined} className CSS class name. Default is `ol-attribution`.
* @property {Element|undefined} target Target.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.control.ControlOptions
* @property {Element|undefined} element The element is the control's container
* element. This only needs to be specified if you're developing a custom
* control.
* @property {Element|string|undefined} target Specify a target if you want the
* control to be rendered outside of the map's viewport.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.control.DefaultsOptions
* @property {boolean|undefined} attribution Attribution. Default is `true`.
* @property {olx.control.AttributionOptions|undefined} attributionOptions
* Attribution options.
* @property {boolean|undefined} logo Logo. Default is `true`.
* @property {olx.control.LogoOptions|undefined} logoOptions Logo options.
* @property {boolean|undefined} zoom Zoom. Default is `true`.
* @property {olx.control.ZoomOptions|undefined} zoomOptions Zoom options.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.control.FullScreenOptions
* @property {string|undefined} className CSS class name. Default is `ol-full-screen`.
* @property {string|undefined} tipLabel Text label to use for the button tip. Default is `Toggle full-screen`
* @property {boolean|undefined} keys Full keyboard access.
* @property {Element|undefined} target Target.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.control.LogoOptions
* @property {string|undefined} className CSS class name. Default is `ol-logo`.
* @property {Element|undefined} target Target.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.control.MousePositionOptions
* @property {string|undefined} className CSS class name. Default is `ol-mouse-position`.
* @property {ol.CoordinateFormatType|undefined} coordinateFormat Coordinate
* format.
* @property {ol.proj.ProjectionLike} projection Projection.
* @property {Element|undefined} target Target.
* @property {string|undefined} undefinedHTML Markup for undefined coordinates.
* Default is `` (empty string).
* @todo stability experimental
*/
/**
* @typedef {Object} olx.control.ScaleLineOptions
* @property {string|undefined} className CSS Class name. Default is `ol-scale-line`.
* @property {number|undefined} minWidth Minimum width in pixels. Default is `64`.
* @property {Element|undefined} target Target.
* @property {ol.control.ScaleLineUnits|string|undefined} units Units.
* Default is `metric`.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.control.ZoomOptions
* @property {number|undefined} duration Animation duration in milliseconds. Default is `250`.
* @property {string|undefined} className CSS class name. Default is `ol-zoom`.
* @property {string|undefined} zoomInLabel Text label to use for the zoom-in button. Default is `+`
* @property {string|undefined} zoomOutLabel Text label to use for the zoom-out button. Default is `-`
* @property {string|undefined} zoomInTipLabel Text label to use for the button tip. Default is `Zoom in`
* @property {string|undefined} zoomOutTipLabel Text label to use for the button tip. Default is `Zoom out`
* @property {number|undefined} delta The zoom delta applied on each click.
* @property {Element|undefined} target Target.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.control.ZoomSliderOptions
* @property {string|undefined} className CSS class name.
* @property {number|undefined} maxResolution Maximum resolution.
* @property {number|undefined} minResolution Minimum resolution.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.control.ZoomToExtentOptions
* @property {string|undefined} className Class name. Default is `ol-zoom-extent`.
* @property {Element|undefined} target Target.
* @property {string|undefined} tipLabel Text label to use for the button tip. Default is `Zoom to extent`
* @property {ol.Extent|undefined} extent The extent to zoom to. If
* undefined the validity extent of the view projection is used.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.format.GeoJSONOptions
* @property {ol.proj.ProjectionLike} defaultProjection Default projection.
*/
/**
* @typedef {Object} olx.format.TopoJSONOptions
* @property {ol.proj.ProjectionLike} defaultProjection Default projection.
*/
/**
* @typedef {Object} olx.format.IGCOptions
* @property {ol.format.IGCZ|undefined} altitudeMode Altitude mode.
* Possible values are `barometric`, `gps`, and `none`. Default is `none`.
*/
/**
* @typedef {Object} olx.format.KMLOptions
* @property {Array.<ol.style.Style>|undefined} defaultStyle Default style. The default
* default style is the same as Google Earth.
*/
/**
* @typedef {Object} olx.format.GMLOptions
* @property {string} featureNS Feature namespace.
* @property {string} featureType Feature type to parse.
* @property {string} srsName srsName to use when writing geometries.
* @property {boolean|undefined} surface Write gml:Surface instead of
* gml:Polygon elements. This also affects the elements in multi-part
* geometries. Default is `false´.
* @property {boolean|undefined} curve Write gml:Curve instead of
* gml:LineString elements. This also affects the elements in multi-part
* geometries. Default is `false´.
* @property {boolean|undefined} multiCurve Write gml:MultiCurve instead of
* gml:MultiLineString. Since the latter is deprecated in GML 3, the
* default is `true´.
* @property {boolean|undefined} multiSurface Write gml:multiSurface instead
* of gml:MultiPolygon. Since the latter is deprecated in GML 3, the
* default is `true´.
* @property {string|undefined} schemaLocation Optional schemaLocation to use
* when writing out the GML, this will override the default provided.
*/
/**
* @typedef {Object} olx.format.WFSOptions
* @property {string} featureNS The namespace URI used for features.
* @property {string} featureType The feature type to parse. Only used for
* read operations.
* @property {string|undefined} schemaLocation Optional schemaLocation to use
* for serialization, this will override the default.
*/
/**
* @typedef {Object} olx.format.WFSWriteGetFeatureOptions
* @property {string} featureNS The namespace URI used for features.
* @property {string} featurePrefix The prefix for the feature namespace.
* @property {Array.<string>} featureTypes The feature type names.
* @property {string|undefined} srsName SRS name. No srsName attribute will be
* set on geometries when this is not provided.
* @property {string|undefined} handle Handle.
* @property {string|undefined} outputFormat Output format.
* @property {number|undefined} maxFeatures Maximum number of features to fetch.
* @property {string|undefined} geometryName Geometry name to use in a BBOX
* filter.
* @property {ol.Extent|undefined} bbox Extent to use for the BBOX filter.
*/
/**
* @typedef {Object} olx.format.WFSWriteTransactionOptions
* @property {string} featureNS The namespace URI used for features.
* @property {string} featurePrefix The prefix for the feature namespace.
* @property {string} featureType The feature type name.
* @property {string|undefined} srsName SRS name. No srsName attribute will be
* set on geometries when this is not provided.
* @property {string|undefined} handle Handle.
* @property {Array.<Object>} nativeElements Native elements. Currently not
* supported.
*/
/**
* @typedef {Object} olx.interaction.DoubleClickZoomOptions
* @property {number|undefined} duration Animation duration in milliseconds. Default is `250`.
* @property {number|undefined} delta The zoom delta applied on each double
* click, default is `1`.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.interaction.DragAndDropOptions
* @property {Array.<function(new: ol.format.Feature)>|undefined} formatConstructors
* Format constructors.
* @property {ol.proj.ProjectionLike} reprojectTo Target projection. By
* default, the map's view's projection is used.
*/
/**
* @typedef {Object} olx.interaction.DragPanOptions
* @property {ol.Kinetic|undefined} kinetic Kinetic inertia to apply to the pan.
* @property {ol.events.ConditionType|undefined} condition A conditional
* modifier (i.e. Shift key) that determines if the interaction is active
* or not, default is no modifiers.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.interaction.DragRotateOptions
* @property {ol.events.ConditionType|undefined} condition A conditional
* modifier (i.e. Shift key) that determines if the interaction is active
* or not, default is both shift and alt keys.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.interaction.DragRotateAndZoomOptions
* @property {ol.events.ConditionType|undefined} condition A conditional
* modifier (i.e. Shift key) that determines if the interaction is active
* or not, default is shify key.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.interaction.DragBoxOptions
* @property {ol.events.ConditionType|undefined} condition A conditional
* modifier (i.e. Shift key) that determines if the interaction is active
* or not, default is always.
* @property {ol.style.Style} style Style for the box.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.interaction.DragZoomOptions
* @property {ol.events.ConditionType|undefined} condition A conditional
* modifier (i.e. Shift key) that determines if the interaction is active
* or not, default is shift key.
* @property {ol.style.Style} style Style for the box.
* @todo stability experimental
*/
/**
* Interactions for the map. Default is `true` for all options.
* @typedef {Object} olx.interaction.DefaultsOptions
* @property {boolean|undefined} altShiftDragRotate Whether Alt-Shift-drag
* rotate is desired. Default is `true`.
* @property {boolean|undefined} doubleClickZoom Whether double click zoom is
* desired. Default is `true`.
* @property {boolean|undefined} dragPan Whether drag-pan is desired. Default is `true`.
* @property {boolean|undefined} keyboard Whether keyboard interaction is
* desired. Default is `true`.
* @property {boolean|undefined} mouseWheelZoom Whether mousewheel zoom is
* desired. Default is `true`.
* @property {boolean|undefined} shiftDragZoom Whether Shift-drag zoom is
* desired. Default is `true`.
* @property {boolean|undefined} pan Whether pan is
* desired. Default is `true`.
* @property {boolean|undefined} rotate Whether rotate is desired. Default is `true`.
* @property {boolean|undefined} zoom Whether zoom is desired. Default is `true`.
* @property {number|undefined} zoomDelta Zoom delta.
* @property {number|undefined} zoomDuration Zoom duration.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.interaction.DrawOptions
* @property {ol.Collection|undefined} features Destination collection for the drawn features.
* @property {ol.source.Vector|undefined} source Destination source for the drawn features.
* @property {number|undefined} snapTolerance Pixel distance for snapping to the
* drawing finish (default is 12).
* @property {ol.geom.GeometryType} type Drawing type ('Point', 'LineString',
* 'Polygon', 'MultiPoint', 'MultiLineString', or 'MultiPolygon').
* @property {number|undefined} minPointsPerRing The number of points that must
* be drawn before a polygon ring can be finished (default is 3).
* @property {ol.style.Style|Array.<ol.style.Style>|ol.feature.StyleFunction|undefined} style
* Style for sketch features.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.interaction.KeyboardPanOptions
* @property {ol.events.ConditionType|undefined} condition A conditional
* modifier (i.e. Shift key) that determines if the interaction is active
* or not, default is no modifiers.
* @property {number|undefined} pixelDelta Pixel The amount to pan on each key
* press. Default is `128` pixels.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.interaction.KeyboardZoomOptions
* @property {number|undefined} duration Animation duration in milliseconds. Default is `100`.
* @property {ol.events.ConditionType|undefined} condition A conditional
* modifier (i.e. Shift key) that determines if the interaction is active
* or not, default is no modifiers.
* @property {number|undefined} delta The amount to zoom on each key press. Default is `1`.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.interaction.MouseWheelZoomOptions
* @property {number|undefined} duration Animation duration in milliseconds. Default is `250`.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.interaction.SelectOptions
* @property {ol.events.ConditionType|undefined} addCondition A conditional
* modifier (e.g. shift key) that determines if the selection is added to
* the current selection. By default, a shift-click adds to the current
* selection.
* @property {ol.events.ConditionType|undefined} condition A conditional
* modifier (e.g. shift key) that determines if the interaction is active
* (i.e. selection occurs) or not. By default, a click with no modifier keys
* toggles the selection.
* @property {function(ol.layer.Layer): boolean|undefined} layerFilter Filter
* function to restrict selection to a subset of layers.
* @property {ol.layer.Layer|undefined} layer Layer. The single layer from which
* features should be selected.
* @property {Array.<ol.layer.Layer>|undefined} layers Layers. Zero or more
* layers from which features should be selected.
* @property {ol.style.Style|Array.<ol.style.Style>|ol.feature.StyleFunction|undefined} style FeatureOverlay style.
*/
/**
* @typedef {Object} olx.interaction.PanOptions
* @property {ol.Kinetic|undefined} kinetic Kinetic inertia to apply to the
* pan.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.interaction.ModifyOptions
* @property {number|undefined} pixelTolerance Pixel tolerance for considering
* the pointer close enough to a vertex for editing. Default is 20 pixels.
* @property {ol.style.Style|Array.<ol.style.Style>|ol.feature.StyleFunction|undefined} style FeatureOverlay style.
* @property {ol.Collection} features The features the interaction works on.
*/
/**
* @typedef {Object} olx.interaction.RotateOptions
* @property {number|undefined} threshold Minimal angle in radians to start a rotation.
* Default is `0.3`.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.interaction.ZoomOptions
* @property {number|undefined} duration Animation duration in milliseconds. Default is `400`.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.layer.BaseOptions
* @property {number|undefined} brightness Brightness. Default is `0`.
* @property {number|undefined} contrast Contrast. Default is `1`.
* @property {number|undefined} hue Hue. Default is `0`.
* @property {number|undefined} opacity Opacity (0, 1). Default is `1`.
* @property {number|undefined} saturation Saturation. Default is `1`.
* @property {boolean|undefined} visible Visibility. Default is `true`.
* @property {number|undefined} minResolution The minimum resolution
* (inclusive) at which this layer will be visible.
* @property {number|undefined} maxResolution The maximum resolution
* (exclusive) below which this layer will be visible.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.layer.LayerOptions
* @property {number|undefined} brightness Brightness. Default is `0`.
* @property {number|undefined} contrast Contrast. Default is `1`.
* @property {number|undefined} hue Hue. Default is `0`.
* @property {number|undefined} opacity Opacity (0, 1). Default is `1`.
* @property {number|undefined} saturation Saturation. Default is `1`.
* @property {ol.source.Source} source Source for this layer.
* @property {boolean|undefined} visible Visibility. Default is `true` (visible).
* @property {number|undefined} minResolution The minimum resolution
* (inclusive) at which this layer will be visible.
* @property {number|undefined} maxResolution The maximum resolution
* (exclusive) below which this layer will be visible.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.layer.GroupOptions
* @property {number|undefined} brightness Brightness. Default is `0`.
* @property {number|undefined} contrast Contrast. Default is `1`.
* @property {number|undefined} hue Hue. Default is `0`.
* @property {number|undefined} opacity Opacity (0, 1). Default is `1`.
* @property {number|undefined} saturation Saturation. Default is `1`.
* @property {boolean|undefined} visible Visibility. Default is `true`.
* @property {number|undefined} minResolution The minimum resolution
* (inclusive) at which this layer will be visible.
* @property {number|undefined} maxResolution The maximum resolution
* (exclusive) below which this layer will be visible.
* @property {Array.<ol.layer.Base>|ol.Collection|undefined} layers Child layers.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.layer.HeatmapOptions
* @property {number|undefined} brightness Brightness.
* @property {number|undefined} contrast Contrast.
* @property {number|undefined} hue Hue.
* @property {Array.<string>|undefined} gradient The color gradient of the heatmap,
* specified as an array of CSS color strings. Default is `['#00f', '#0ff', '#0f0', '#ff0', '#f00']`.
* @property {number|undefined} radius Radius size in pixels. Default is `8`.
* @property {number|undefined} blur Blur size in pixels. Default is `15`.
* @property {number|undefined} shadow Shadow size in pixels. Default is `250`.
* @property {number|undefined} minResolution The minimum resolution
* (inclusive) at which this layer will be visible.
* @property {number|undefined} maxResolution The maximum resolution
* (exclusive) below which this layer will be visible.
* @property {number|undefined} opacity Opacity. 0-1. Default is `1`.
* @property {number|undefined} saturation Saturation.
* @property {ol.source.Vector} source Source.
* @property {boolean|undefined} visible Visibility. Default is `true` (visible).
* @todo stability experimental
*/
/**
* @typedef {Object} olx.layer.TileOptions
* @property {number|undefined} brightness Brightness. Default is `0`.
* @property {number|undefined} contrast Contrast. Default is `1`.
* @property {number|undefined} hue Hue. Default is `0`.
* @property {number|undefined} opacity Opacity (0, 1). Default is `1`.
* @property {number|undefined} preload Preload.
* @property {number|undefined} saturation Saturation. Default is `1`.
* @property {ol.source.Source} source Source for this layer.
* @property {boolean|undefined} visible Visibility. Default is `true` (visible).
* @property {number|undefined} minResolution The minimum resolution
* (inclusive) at which this layer will be visible.
* @property {number|undefined} maxResolution The maximum resolution
* (exclusive) below which this layer will be visible.
* @property {boolean|undefined} useInterimTilesOnError Use interim tiles on
* error. Default is `true`.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.layer.VectorOptions
* @property {number|undefined} brightness Brightness.
* @property {number|undefined} contrast Contrast.
* @property {number|undefined} hue Hue.
* @property {number|undefined} minResolution The minimum resolution
* (inclusive) at which this layer will be visible.
* @property {number|undefined} maxResolution The maximum resolution
* (exclusive) below which this layer will be visible.
* @property {number|undefined} opacity Opacity. 0-1. Default is `1`.
* @property {number|undefined} saturation Saturation.
* @property {ol.source.Vector} source Source.
* @property {ol.style.Style|Array.<ol.style.Style>|ol.feature.StyleFunction|undefined} style Layer style.
* @property {boolean|undefined} visible Visibility. Default is `true` (visible).
* @todo stability experimental
*/
/**
* @typedef {Object} olx.FeatureOverlayOptions
* @property {Array.<ol.Feature>|ol.Collection|undefined} features Features.
* @property {ol.Map|undefined} map Map.
* @property {ol.style.Style|Array.<ol.style.Style>|ol.feature.StyleFunction|undefined} style Feature style.
*/
/**
* @typedef {Object} olx.source.BingMapsOptions
* @property {string|undefined} culture Culture code. Default is `en-us`.
* @property {string} key Bing Maps API key. Get yours at
* http://bingmapsportal.com/.
* @property {string} imagerySet Type of imagery.
* @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional
* function to load a tile given a URL.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.source.GeoJSONOptions
* @property {Array.<ol.Attribution>|undefined} attributions Attributions.
* @property {ol.proj.ProjectionLike} defaultProjection Default projection.
* @property {ol.Extent|undefined} extent Extent.
* @property {string|undefined} logo Logo.
* @property {GeoJSONObject|undefined} object Object.
* @property {ol.proj.ProjectionLike} projection Destination projection. If
* provided, features will be transformed to this projection. If not
* provided, features will not be transformed.
* @property {string|undefined} text Text.
* @property {string|undefined} url URL.
* @property {Array.<string>|undefined} urls URLs.
*/
/**
* @typedef {Object} olx.source.GPXOptions
* @property {Array.<ol.Attribution>|undefined} attributions Attributions.
* @property {Document|undefined} doc Document.
* @property {ol.Extent|undefined} extent Extent.
* @property {string|undefined} logo Logo.
* @property {Node|undefined} node Node.
* @property {ol.proj.ProjectionLike} projection Destination projection. If
* provided, features will be transformed to this projection. If not
* provided, features will not be transformed.
* @property {string|undefined} text Text.
* @property {string|undefined} url URL.
* @property {Array.<string>|undefined} urls URLs.
*/
/**
* @typedef {Object} olx.source.TopoJSONOptions
* @property {Array.<ol.Attribution>|undefined} attributions Attributions.
* @property {ol.proj.ProjectionLike} defaultProjection Default projection.
* @property {ol.Extent|undefined} extent Extent.
* @property {string|undefined} logo Logo.
* @property {GeoJSONObject|undefined} object Object.
* @property {ol.proj.ProjectionLike} projection Destination projection. If
* provided, features will be transformed to this projection. If not
* provided, features will not be transformed.
* @property {string|undefined} text Text.
* @property {string|undefined} url URL.
*/
/**
* @typedef {Object} olx.source.IGCOptions
* @property {ol.format.IGCZ|undefined} altitudeMode Altitude mode.
* Possible values are `barometric`, `gps`, and `none`. Default is `none`.
* @property {ol.proj.ProjectionLike} projection Destination projection. If
* provided, features will be transformed to this projection. If not
* provided, features will not be transformed.
* @property {string|undefined} text Text.
* @property {string|undefined} url URL.
* @property {Array.<string>|undefined} urls URLs.
*/
/**
* @typedef {Object} olx.source.MapGuideOptions
* @property {string|undefined} url The mapagent url.
* @property {number|undefined} displayDpi The display resolution. Default is `96`.
* @property {number|undefined} metersPerUnit The meters-per-unit value. Default is `1`.
* @property {ol.Extent|undefined} extent Extent.
* @property {boolean|undefined} hidpi Use the `ol.Map#pixelRatio` value when
* requesting the image from the remote server. Default is `true`.
* @property {boolean|undefined} useOverlay If `true`, will use
* `GETDYNAMICMAPOVERLAYIMAGE`.
* @property {ol.proj.ProjectionLike} projection Projection.
* @property {number|undefined} ratio Ratio. `1` means image requests are the size
* of the map viewport, `2` means twice the size of the map viewport, and so
* on. Default is `1`.
* @property {Array.<number>|undefined} resolutions Resolutions. If specified,
* requests will be made for these resolutions only.
* @property {Object|undefined} params Additional parameters.
*/
/**
* @typedef {Object} olx.source.KMLOptions
* @property {Array.<ol.Attribution>|undefined} attributions Attributions.
* @property {Array.<ol.style.Style>|undefined} defaultStyle Default style.
* @property {Document|undefined} doc Document.
* @property {ol.Extent|undefined} extent Extent.
* @property {string|undefined} logo Logo.
* @property {Node|undefined} node Node.
* @property {ol.proj.ProjectionLike} projection Destination projection. If
* provided, features will be transformed to this projection. If not
* provided, features will not be transformed.
* @property {string|undefined} text Text.
* @property {string|undefined} url URL.
* @property {Array.<string>|undefined} urls URLs.
*/
/**
* @typedef {Object} olx.source.MapQuestOptions
* @property {string} layer Layer. Possible values are `osm`, `sat`, and `hyb`.
* @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional
* function to load a tile given a URL.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.source.TileDebugOptions
* @property {ol.Extent|undefined} extent Extent.
* @property {ol.proj.ProjectionLike} projection Projection.
* @property {ol.tilegrid.TileGrid|undefined} tileGrid Tile grid.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.source.OSMOptions
* @property {Array.<ol.Attribution>|undefined} attributions Attributions.
* @property {null|string|undefined} crossOrigin crossOrigin setting for image
* requests. Default is `anonymous`.
* @property {number|undefined} maxZoom Max zoom.
* @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional
* function to load a tile given a URL.
* @property {string|undefined} url URL template. Must include `{x}`, `{y}`,
* and `{z}` placeholders. Default is
* `//{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png`.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.source.OSMXMLOptions
* @property {Array.<ol.Attribution>|undefined} attributions Attributions.
* @property {Array.<ol.style.Style>|undefined} defaultStyle Default style.
* @property {Document|undefined} doc Document.
* @property {ol.Extent|undefined} extent Extent.
* @property {string|undefined} logo Logo.
* @property {Node|undefined| node Node.
* @property {ol.proj.ProjectionLike} projection Projection.
* @property {ol.proj.ProjectionLike} reprojectTo Re-project to.
* @property {string|undefined} text Text.
* @property {string|undefined} url URL.
* @property {Array.<string>|undefined} urls URLs.
*/
/**
* @typedef {Object} olx.source.ImageCanvasOptions
* @property {Array.<ol.Attribution>|undefined} attributions Attributions.
* @property {ol.CanvasFunctionType} canvasFunction Canvas function. The function
* returning the canvas element used by the source as an image. The arguments
* passed to the function are: `{ol.Extent}` the image extent, `{number}` the
* image resolution, `{number}` the device pixel ratio, `{ol.Size}` the image
* size, and `{ol.proj.Projection}` the image projection. The canvas returned
* by this function is cached by the source. If the value returned by the
* function is later changed then `dispatchChangeEvent` should be called on
* the source for the source to invalidate the current cached image.
* @property {ol.Extent|undefined} extent Extent.
* @property {string|undefined} logo Logo.
* @property {ol.proj.ProjectionLike} projection Projection.
* @property {number|undefined} ratio Ratio. 1 means canvases are the size
* of the map viewport, 2 means twice the size of the map viewport, and so
* on. Default is `1.5`.
* @property {Array.<number>|undefined} resolutions Resolutions. If specified,
* new canvases will be created for these resolutions only.
* @property {ol.source.State|string|undefined} state Source state.
*/
/**
* @typedef {Object} olx.source.ImageVectorOptions
* @property {Array.<ol.Attribution>|undefined} attributions Attributions.
* @property {ol.Extent|undefined} extent Extent.
* @property {string|undefined} logo Logo.
* @property {ol.proj.ProjectionLike} projection Projection.
* @property {number|undefined} ratio Ratio. 1 means canvases are the size
* of the map viewport, 2 means twice the size of the map viewport, and so
* on. Default is `1.5`.
* @property {Array.<number>|undefined} resolutions Resolutions. If specified,
* new canvases will be created for these resolutions only.
* @property {ol.source.Vector} source The vector source from which the vector
* features drawn in canvas elements are read.
* @property {ol.style.Style|Array.<ol.style.Style>|ol.feature.StyleFunction|undefined} style
* Style to use when rendering features to the canvas.
*/
/**
* @typedef {Object} olx.source.ImageWMSOptions
* @property {Array.<ol.Attribution>|undefined} attributions Attributions.
* @property {null|string|undefined} crossOrigin crossOrigin setting for image
* requests.
* @property {ol.Extent|undefined} extent Extent.
* @property {boolean|undefined} hidpi Use the `ol.Map#pixelRatio` value when
* requesting the image from the remote server. Default is `true`.
* @property {ol.source.wms.ServerType|string|undefined} serverType The type of the remote WMS
* server: `mapserver`, `geoserver` or `qgis`. Only needed if `hidpi` is `true`.
* Default is `undefined`.
* @property {string|undefined} logo Logo.
* @property {Object.<string,*>} params WMS request parameters. At least a
* `LAYERS` param is required. `STYLES` is `` by default. `VERSION` is
* `1.3.0` by default. `WIDTH`, `HEIGHT`, `BBOX` and `CRS` (`SRS` for WMS
* version < 1.3.0) will be set dynamically.
* @property {ol.proj.ProjectionLike} projection Projection.
* @property {number|undefined} ratio Ratio. `1` means image requests are the size
* of the map viewport, `2` means twice the size of the map viewport, and so
* on. Default is `1.5`.
* @property {Array.<number>|undefined} resolutions Resolutions. If specified,
* requests will be made for these resolutions only.
* @property {string|undefined} url WMS service URL.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.source.StamenOptions
* @property {string} layer Layer.
* @property {number|undefined} minZoom Minimum zoom.
* @property {number|undefined} maxZoom Maximum zoom.
* @property {boolean|undefined} opaque Whether the layer is opaque.
* @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional
* function to load a tile given a URL.
* @property {string|undefined} url URL template. Must include `{x}`, `{y}`,
* and `{z}` placeholders.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.source.ImageStaticOptions
* @property {Array.<ol.Attribution>|undefined} attributions Attributions.
* @property {null|string|undefined} crossOrigin crossOrigin setting for image
* requests.
* @property {ol.Extent|undefined} extent Extent.
* @property {ol.Extent|undefined} imageExtent Extent of the image.
* @property {ol.Size|undefined} imageSize Size of the image.
* @property {string|undefined} logo Logo.
* @property {ol.proj.ProjectionLike} projection Projection.
* @property {string} url Url.
*/
/**
* @typedef {Object} olx.source.TileJSONOptions
* @property {null|string|undefined} crossOrigin crossOrigin setting for image
* requests.
* @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional
* function to load a tile given a URL.
* @property {string} url URL to the TileJSON file.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.source.TileWMSOptions
* @property {Array.<ol.Attribution>|undefined} attributions Attributions.
* @property {Object.<string,*>} params WMS request parameters. At least a
* `LAYERS` param is required. `STYLES` is `` by default. `VERSION` is
* `1.3.0` by default. `WIDTH`, `HEIGHT`, `BBOX` and `CRS` (`SRS` for WMS
* version < 1.3.0) will be set dynamically.
* @property {null|string|undefined} crossOrigin crossOrigin setting for image
* requests.
* @property {ol.Extent|undefined} extent Extent.
* @property {number|undefined} gutter The size in pixels of the
* gutter around image tiles to ignore. By setting this property to a
* non-zero value, images will be requested that are wider and taller than
* the tile size by a value of `2 x gutter`. Defaults to zero. Using a
* non-zero value allows artifacts of rendering at tile edges to be ignored. If
* you control the WMS service it is recommended to address "artifacts at tile
* edges" issues by properly configuring the WMS service. For example, MapServer
* has a `tile_map_edge_buffer` configuration parameter for this. See
* http://mapserver.org/output/tile_mode.html.
* @property {boolean|undefined} hidpi Use the `ol.Map#pixelRatio` value when
* requesting the image from the remote server. Default is `true`.
* @property {string|undefined} logo Logo.
* @property {ol.tilegrid.TileGrid|undefined} tileGrid Tile grid.
* @property {number|undefined} maxZoom Maximum zoom.
* @property {ol.proj.ProjectionLike} projection Projection.
* @property {ol.source.wms.ServerType|string|undefined} serverType The type of the remote WMS
* server: `mapserver`, `geoserver` or `qgis`. Only needed if `hidpi` is `true`.
* Default is `undefined`.
* @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional
* function to load a tile given a URL.
* @property {string|undefined} url WMS service URL.
* @property {Array.<string>|undefined} urls WMS service urls. Use this instead
* of `url` when the WMS supports multiple urls for GetMap requests.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.source.VectorOptions
* @property {Array.<ol.Attribution>|undefined} attributions Attributions.
* @property {ol.Extent|undefined} extent Extent.
* @property {Array.<ol.Feature>|undefined} features Features.
* @property {string|undefined} logo Logo.
* @property {ol.proj.ProjectionLike} projection Projection.
* @property {ol.source.State|string|undefined} state State.
*/
/**
* @typedef {Object} olx.source.VectorFileOptions
* @property {ArrayBuffer|undefined} arrayBuffer Array buffer.
* @property {Array.<ol.Attribution>|undefined} attributions Attributions.
* @property {Document|undefined} doc Document.
* @property {ol.Extent|undefined} extent Extent.
* @property {ol.format.Feature} format Format.
* @property {string|undefined} logo Logo.
* @property {Node|undefined} node Node.
* @property {Object|undefined} object Object.
* @property {ol.proj.ProjectionLike} projection Projection.
* @property {string|undefined} text Text.
* @property {string|undefined} url URL.
* @property {Array.<string>|undefined} urls URLs.
*/
/**
* @typedef {Object} olx.source.WMTSOptions
* @property {Array.<ol.Attribution>|undefined} attributions Attributions.
* @property {string|null|undefined} crossOrigin crossOrigin setting for image
* requests.
* @property {ol.Extent|undefined} extent Extent.
* @property {string|undefined} logo Logo.
* @property {ol.tilegrid.WMTS} tileGrid Tile grid.
* @property {ol.proj.ProjectionLike} projection Projection.
* @property {ol.source.WMTSRequestEncoding|undefined} requestEncoding Request
* encoding.
* @property {string} layer Layer.
* @property {string} style Style.
* @property {string|undefined} version WMTS version. Default to `1.0.0`.
* @property {string|undefined} format Format.
* @property {string} matrixSet Matrix set.
* @property {Object|undefined} dimensions Dimensions.
* @property {string|undefined} url URL.
* @property {number|undefined} maxZoom Maximum zoom.
* @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional
* function to load a tile given a URL.
* @property {Array.<string>|undefined} urls Urls.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.source.XYZOptions
* @property {Array.<ol.Attribution>|undefined} attributions Attributions.
* @property {null|string|undefined} crossOrigin Cross origin setting for image
* requests.
* @property {ol.Extent|undefined} extent Extent.
* @property {string|undefined} logo Logo.
* @property {ol.proj.ProjectionLike} projection Projection. Default is `EPSG:3857`.
* @property {number|undefined} maxZoom Optional max zoom level. Default is `18`.
* @property {number|undefined} minZoom Unsupported (TODO: remove this).
* @property {ol.TileLoadFunctionType|undefined} tileLoadFunction Optional
* function to load a tile given a URL.
* @property {ol.TileUrlFunctionType|undefined} tileUrlFunction Optional
* function to get tile URL given a tile coordinate and the projection.
* Required if url or urls are not provided.
* @property {string|undefined} url URL template. Must include `{x}`, `{y}`,
* and `{z}` placeholders.
* @property {Array.<string>|undefined} urls An array of URL templates.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.source.ZoomifyOptions
* @property {Array.<ol.Attribution>|undefined} attributions Attributions.
* @property {null|string|undefined} crossOrigin Cross origin setting for image
* requests.
* @property {string|undefined} logo Logo.
* @property {!string} url Prefix of URL template.
* @property {string|undefined} tierSizeCalculation Tier size calculation method: `default` or `truncated`.
* @property {ol.Size} size Size of the image.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.style.CircleOptions
* @property {ol.style.Fill|undefined} fill Fill style.
* @property {number} radius Circle radius.
* @property {ol.style.Stroke|undefined} stroke Stroke style.
*/
/**
* @typedef {Object} olx.style.FillOptions
* @property {ol.Color|string|undefined} color Color.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.style.IconOptions
* @property {Array.<number>|undefined} anchor Anchor. Default value is `[0.5, 0.5]`
* (icon center).
* @property {ol.style.IconAnchorOrigin|undefined} anchorOrigin Origin of the anchor: `bottom-left`, `bottom-right`, `top-left` or `top-right`. Default is `top-left`.
* @property {ol.style.IconAnchorUnits|undefined} anchorXUnits Units in which the anchor x value is specified.
* A value of `'fraction'` indicates the x value is a fraction of the icon.
* A value of `'pixels'` indicates the x value in pixels. Default is
* `'fraction'`.
* @property {ol.style.IconAnchorUnits|undefined} anchorYUnits Units in which the anchor y value is specified.
* A value of `'fraction'` indicates the y value is a fraction of the icon.
* A value of `'pixels'` indicates the y value in pixels. Default is
* `'fraction'`.
* @property {null|string|undefined} crossOrigin crossOrigin setting for image.
* @property {number|undefined} scale Scale.
* @property {boolean|undefined} rotateWithView Whether to rotate the icon with the view. Default is `false`.
* @property {number|undefined} rotation Rotation.
* @property {ol.Size|undefined} size Icon size in pixel.
* @property {string} src Image source URI.
*/
/**
* @typedef {Object} olx.style.StrokeOptions
* @property {ol.Color|string|undefined} color Color.
* @property {string|undefined} lineCap Line cap style: `butt`, `round`, or `square`. Default is `round`.
* @property {string|undefined} lineJoin Line join style: `bevel`, `round`, or `miter`. Default is `round`.
* @property {Array.<number>|undefined} lineDash Line dash pattern. Default is `undefined` (no dash).
* @property {number|undefined} miterLimit Miter limit. Default is `10`.
* @property {number|undefined} width Width.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.style.TextOptions
* @property {string|undefined} font Font.
* @property {number|undefined} offsetX Horizontal text offset in pixels.
* A positive will shift the text right. Default is `0`.
* @property {number|undefined} offsetY Vertical text offset in pixels.
* A positive will shift the text down. Default is `0`.
* @property {number|undefined} scale Scale.
* @property {number|undefined} rotation Rotation.
* @property {string|undefined} text Text.
* @property {string|undefined} textAlign Text alignment.
* @property {string|undefined} textBaseline Text base line.
* @property {ol.style.Fill|undefined} fill Fill style.
* @property {ol.style.Stroke|undefined} stroke Stroke style.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.style.StyleOptions
* @property {ol.style.Fill|undefined} fill Fill style.
* @property {ol.style.Image|undefined} image Image style.
* @property {ol.style.Stroke|undefined} stroke Stroke style.
* @property {ol.style.Text|undefined} text Text style.
* @property {number|undefined} zIndex Z index.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.tilegrid.TileGridOptions
* @property {number|undefined} minZoom Minimum zoom.
* @property {ol.Coordinate|undefined} origin Origin.
* @property {Array.<ol.Coordinate>|undefined} origins Origins.
* @property {!Array.<number>} resolutions Resolutions.
* @property {number|undefined} tileSize Tile size.
* @property {Array.<number>|undefined} tileSizes Tile sizes.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.tilegrid.WMTSOptions
* @property {ol.Coordinate|undefined} origin Origin.
* @property {Array.<ol.Coordinate>|undefined} origins Origins.
* @property {!Array.<number>} resolutions Resolutions.
* @property {!Array.<string>} matrixIds matrix IDs.
* @property {number|undefined} tileSize Tile size.
* @property {Array.<number>|undefined} tileSizes Tile sizes.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.tilegrid.XYZOptions
* @property {number} maxZoom Maximum zoom.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.tilegrid.ZoomifyOptions
* @property {!Array.<number>} resolutions Resolutions.
* @todo stability experimental
*/
/**
* @typedef {Object} olx.View2D.fitGeometryOptions
* @property {!Array.<number>} padding Padding (in pixels) to be cleared inside the view. Values in the array are top, right, bottom and left padding. Default is `[0, 0, 0, 0]`.
* @property {boolean|undefined} constrainResolution Constrain the resolution. Default is `true`.
* @property {boolean|undefined} nearest Get the nearest extent. Default is `false`.
* @property {number|undefined} minResolution Minimum resolution that we zoom to. Default is `0`.
* @todo stability experimental
*/