No olx and ol types for ol/interaction/DragBox

This commit is contained in:
ahocevar
2018-03-14 13:33:54 +01:00
parent 7c7e002ee4
commit 12581b6a77
13 changed files with 66 additions and 114 deletions

View File

@@ -5,52 +5,6 @@
let olx; let olx;
/**
* @typedef {{className: (string|undefined),
* condition: (ol.EventsConditionType|undefined),
* minArea: (number|undefined),
* boxEndCondition: (ol.DragBoxEndConditionType|undefined)}}
*/
olx.interaction.DragBoxOptions;
/**
* CSS class name for styling the box. The default is `ol-dragbox`.
* @type {string|undefined}
* @api
*/
olx.interaction.DragBoxOptions.prototype.className;
/**
* A function that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a boolean
* to indicate whether that event should be handled.
* Default is {@link ol.events.condition.always}.
* @type {ol.EventsConditionType|undefined}
* @api
*/
olx.interaction.DragBoxOptions.prototype.condition;
/**
* The minimum area of the box in pixel, this value is used by the default
* `boxEndCondition` function. Default is `64`.
* @type {number|undefined}
* @api
*/
olx.interaction.DragBoxOptions.prototype.minArea;
/**
* A function that takes a {@link module:ol/MapBrowserEvent~MapBrowserEvent} and two
* {@link ol.Pixel}s to indicate whether a `boxend` event should be fired.
* Default is `true` if the area of the box is bigger than the `minArea` option.
* @type {ol.DragBoxEndConditionType|undefined}
* @api
*/
olx.interaction.DragBoxOptions.prototype.boxEndCondition;
/** /**
* @typedef {{condition: (ol.EventsConditionType|undefined), * @typedef {{condition: (ol.EventsConditionType|undefined),
* kinetic: (ol.Kinetic|undefined)}} * kinetic: (ol.Kinetic|undefined)}}

View File

@@ -1,18 +1,4 @@
/**
* @typedef {Object} interaction_DragBoxOptions
* @property {string|undefined} className CSS class name for styling the box. The default is `ol-dragbox`.
* @property {ol.EventsConditionType|undefined} condition A function that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a boolean
* to indicate whether that event should be handled.
* Default is {@link ol.events.condition.always}.
* @property {number|undefined} minArea The minimum area of the box in pixel, this value is used by the default
* `boxEndCondition` function. Default is `64`.
* @property {ol.DragBoxEndConditionType|undefined} boxEndCondition A function that takes a {@link module:ol/MapBrowserEvent~MapBrowserEvent} and two
* {@link ol.Pixel}s to indicate whether a `boxend` event should be fired.
* Default is `true` if the area of the box is bigger than the `minArea` option.
*/
/** /**
* @typedef {Object} interaction_DragPanOptions * @typedef {Object} interaction_DragPanOptions
* @property {ol.EventsConditionType|undefined} condition A function that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a boolean * @property {ol.EventsConditionType|undefined} condition A function that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a boolean

View File

@@ -7,6 +7,14 @@ import {TRUE, FALSE} from '../functions.js';
import {WEBKIT, MAC} from '../has.js'; import {WEBKIT, MAC} from '../has.js';
/**
* A function that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a
* `{boolean}`. If the condition is met, true should be returned.
*
* @typedef {function(module:ol/MapBrowserEvent~MapBrowserEvent): boolean} Condition
*/
/** /**
* Return `true` if only the alt-key is pressed, `false` otherwise (e.g. when * Return `true` if only the alt-key is pressed, `false` otherwise (e.g. when
* additionally the shift-key is pressed). * additionally the shift-key is pressed).

View File

@@ -10,27 +10,49 @@ import PointerInteraction from '../interaction/Pointer.js';
import RenderBox from '../render/Box.js'; import RenderBox from '../render/Box.js';
/**
* A function that takes a {@link module:ol/MapBrowserEvent~MapBrowserEvent} and two
* {@link module:ol~Pixel}s and returns a `{boolean}`. If the condition is met,
* true should be returned.
* @typedef {function(module:ol/MapBrowserEvent~MapBrowserEvent, module:ol~Pixel, module:ol~Pixel):boolean} EndCondition
*/
/**
* @typedef {Object} Options
* @property {string|undefined} className CSS class name for styling the box. The default is `ol-dragbox`.
* @property {module:ol/events/condition~Condition|undefined} condition A function that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a boolean
* to indicate whether that event should be handled.
* Default is {@link ol/events/condition~always}.
* @property {number|undefined} minArea The minimum area of the box in pixel, this value is used by the default
* `boxEndCondition` function. Default is `64`.
* @property {module:ol/interaction/DragBox~EndCondition|undefined} boxEndCondition A function that takes a {@link module:ol/MapBrowserEvent~MapBrowserEvent} and two
* {@link module:ol~Pixel}s to indicate whether a `boxend` event should be fired.
* Default is `true` if the area of the box is bigger than the `minArea` option.
*/
/** /**
* @enum {string} * @enum {string}
*/ */
const DragBoxEventType = { const DragBoxEventType = {
/** /**
* Triggered upon drag box start. * Triggered upon drag box start.
* @event ol.interaction.DragBoxEvent#boxstart * @event module:ol/interaction/DragBox~DragBoxEvent#boxstart
* @api * @api
*/ */
BOXSTART: 'boxstart', BOXSTART: 'boxstart',
/** /**
* Triggered on drag when box is active. * Triggered on drag when box is active.
* @event ol.interaction.DragBoxEvent#boxdrag * @event module:ol/interaction/DragBox~DragBoxEvent#boxdrag
* @api * @api
*/ */
BOXDRAG: 'boxdrag', BOXDRAG: 'boxdrag',
/** /**
* Triggered upon drag box end. * Triggered upon drag box end.
* @event ol.interaction.DragBoxEvent#boxend * @event module:ol/interaction/DragBox~DragBoxEvent#boxend
* @api * @api
*/ */
BOXEND: 'boxend' BOXEND: 'boxend'
@@ -39,13 +61,13 @@ const DragBoxEventType = {
/** /**
* @classdesc * @classdesc
* Events emitted by {@link ol.interaction.DragBox} instances are instances of * Events emitted by {@link module:ol/interaction/DragBox~DragBox} instances are instances of
* this type. * this type.
* *
* @param {string} type The event type. * @param {string} type The event type.
* @param {module:ol/coordinate~Coordinate} coordinate The event coordinate. * @param {module:ol/coordinate~Coordinate} coordinate The event coordinate.
* @param {module:ol/MapBrowserEvent~MapBrowserEvent} mapBrowserEvent Originating event. * @param {module:ol/MapBrowserEvent~MapBrowserEvent} mapBrowserEvent Originating event.
* @extends {ol.events.Event} * @extends {module:ol/events/Event~Event}
* @constructor * @constructor
* @implements {oli.DragBoxEvent} * @implements {oli.DragBoxEvent}
*/ */
@@ -75,18 +97,18 @@ inherits(DragBoxEvent, Event);
/** /**
* @classdesc * @classdesc
* Allows the user to draw a vector box by clicking and dragging on the map, * Allows the user to draw a vector box by clicking and dragging on the map,
* normally combined with an {@link ol.events.condition} that limits * normally combined with an {@link module:ol/events/condition} that limits
* it to when the shift or other key is held down. This is used, for example, * it to when the shift or other key is held down. This is used, for example,
* for zooming to a specific area of the map * for zooming to a specific area of the map
* (see {@link ol.interaction.DragZoom} and * (see {@link module:ol/interaction/DragZoom~DragZoom} and
* {@link ol.interaction.DragRotateAndZoom}). * {@link module:ol/interaction/DragRotateAndZoom}).
* *
* This interaction is only supported for mouse devices. * This interaction is only supported for mouse devices.
* *
* @constructor * @constructor
* @extends {ol.interaction.Pointer} * @extends {module:ol/interaction/Pointer}
* @fires ol.interaction.DragBoxEvent * @fires module:ol/interaction/DragBox~DragBoxEvent
* @param {olx.interaction.DragBoxOptions=} opt_options Options. * @param {module:ol/interaction/DragBox~Options=} opt_options Options.
* @api * @api
*/ */
const DragBox = function(opt_options) { const DragBox = function(opt_options) {
@@ -100,7 +122,7 @@ const DragBox = function(opt_options) {
const options = opt_options ? opt_options : {}; const options = opt_options ? opt_options : {};
/** /**
* @type {ol.render.Box} * @type {module:ol/render/Box~Box}
* @private * @private
*/ */
this.box_ = new RenderBox(options.className || 'ol-dragbox'); this.box_ = new RenderBox(options.className || 'ol-dragbox');
@@ -119,13 +141,13 @@ const DragBox = function(opt_options) {
/** /**
* @private * @private
* @type {ol.EventsConditionType} * @type {module:ol/events/condition~Condition}
*/ */
this.condition_ = options.condition ? options.condition : always; this.condition_ = options.condition ? options.condition : always;
/** /**
* @private * @private
* @type {ol.DragBoxEndConditionType} * @type {module:ol/interaction/DragBox~EndCondition}
*/ */
this.boxEndCondition_ = options.boxEndCondition ? this.boxEndCondition_ = options.boxEndCondition ?
options.boxEndCondition : defaultBoxEndCondition; options.boxEndCondition : defaultBoxEndCondition;
@@ -142,7 +164,7 @@ inherits(DragBox, PointerInteraction);
* @param {module:ol~Pixel} startPixel The starting pixel of the box. * @param {module:ol~Pixel} startPixel The starting pixel of the box.
* @param {module:ol~Pixel} endPixel The end pixel of the box. * @param {module:ol~Pixel} endPixel The end pixel of the box.
* @return {boolean} Whether or not the boxend condition should be fired. * @return {boolean} Whether or not the boxend condition should be fired.
* @this {ol.interaction.DragBox} * @this {module:ol/interaction/DragBox~DragBox}
*/ */
function defaultBoxEndCondition(mapBrowserEvent, startPixel, endPixel) { function defaultBoxEndCondition(mapBrowserEvent, startPixel, endPixel) {
const width = endPixel[0] - startPixel[0]; const width = endPixel[0] - startPixel[0];
@@ -152,8 +174,8 @@ function defaultBoxEndCondition(mapBrowserEvent, startPixel, endPixel) {
/** /**
* @param {ol.MapBrowserPointerEvent} mapBrowserEvent Event. * @param {module:ol/MapBrowserPointerEvent~MapBrowserPointerEvent} mapBrowserEvent Event.
* @this {ol.interaction.DragBox} * @this {module:ol/interaction/DragBox~DragBox}
*/ */
function handleDragEvent(mapBrowserEvent) { function handleDragEvent(mapBrowserEvent) {
if (!mouseOnly(mapBrowserEvent)) { if (!mouseOnly(mapBrowserEvent)) {
@@ -187,9 +209,9 @@ DragBox.prototype.onBoxEnd = UNDEFINED;
/** /**
* @param {ol.MapBrowserPointerEvent} mapBrowserEvent Event. * @param {module:ol/MapBrowserPointerEvent~MapBrowserPointerEvent} mapBrowserEvent Event.
* @return {boolean} Stop drag sequence? * @return {boolean} Stop drag sequence?
* @this {ol.interaction.DragBox} * @this {module:ol/interaction/DragBox~DragBox}
*/ */
function handleUpEvent(mapBrowserEvent) { function handleUpEvent(mapBrowserEvent) {
if (!mouseOnly(mapBrowserEvent)) { if (!mouseOnly(mapBrowserEvent)) {
@@ -209,9 +231,9 @@ function handleUpEvent(mapBrowserEvent) {
/** /**
* @param {ol.MapBrowserPointerEvent} mapBrowserEvent Event. * @param {module:ol/MapBrowserPointerEvent~MapBrowserPointerEvent} mapBrowserEvent Event.
* @return {boolean} Start drag sequence? * @return {boolean} Start drag sequence?
* @this {ol.interaction.DragBox} * @this {module:ol/interaction/DragBox~DragBox}
*/ */
function handleDownEvent(mapBrowserEvent) { function handleDownEvent(mapBrowserEvent) {
if (!mouseOnly(mapBrowserEvent)) { if (!mouseOnly(mapBrowserEvent)) {

View File

@@ -46,7 +46,7 @@ const DragPan = function(opt_options) {
/** /**
* @private * @private
* @type {ol.EventsConditionType} * @type {module:ol/events/condition~Condition}
*/ */
this.condition_ = options.condition ? options.condition : noModifierKeys; this.condition_ = options.condition ? options.condition : noModifierKeys;

View File

@@ -34,7 +34,7 @@ const DragRotate = function(opt_options) {
/** /**
* @private * @private
* @type {ol.EventsConditionType} * @type {module:ol/events/condition~Condition}
*/ */
this.condition_ = options.condition ? options.condition : altShiftKeysOnly; this.condition_ = options.condition ? options.condition : altShiftKeysOnly;

View File

@@ -35,7 +35,7 @@ const DragRotateAndZoom = function(opt_options) {
/** /**
* @private * @private
* @type {ol.EventsConditionType} * @type {module:ol/events/condition~Condition}
*/ */
this.condition_ = options.condition ? options.condition : shiftKeyOnly; this.condition_ = options.condition ? options.condition : shiftKeyOnly;

View File

@@ -201,7 +201,7 @@ const Draw = function(options) {
/** /**
* A function to decide if a potential finish coordinate is permissible * A function to decide if a potential finish coordinate is permissible
* @private * @private
* @type {ol.EventsConditionType} * @type {module:ol/events/condition~Condition}
*/ */
this.finishCondition_ = options.finishCondition ? options.finishCondition : TRUE; this.finishCondition_ = options.finishCondition ? options.finishCondition : TRUE;
@@ -348,13 +348,13 @@ const Draw = function(options) {
/** /**
* @private * @private
* @type {ol.EventsConditionType} * @type {module:ol/events/condition~Condition}
*/ */
this.condition_ = options.condition ? options.condition : noModifierKeys; this.condition_ = options.condition ? options.condition : noModifierKeys;
/** /**
* @private * @private
* @type {ol.EventsConditionType} * @type {module:ol/events/condition~Condition}
*/ */
this.freehandCondition_; this.freehandCondition_;
if (options.freehand) { if (options.freehand) {

View File

@@ -45,7 +45,7 @@ const KeyboardPan = function(opt_options) {
/** /**
* @private * @private
* @type {ol.EventsConditionType} * @type {module:ol/events/condition~Condition}
*/ */
this.condition_ = options.condition !== undefined ? this.condition_ = options.condition !== undefined ?
options.condition : this.defaultCondition_; options.condition : this.defaultCondition_;

View File

@@ -108,7 +108,7 @@ const Modify = function(options) {
/** /**
* @private * @private
* @type {ol.EventsConditionType} * @type {module:ol/events/condition~Condition}
*/ */
this.condition_ = options.condition ? options.condition : primaryAction; this.condition_ = options.condition ? options.condition : primaryAction;
@@ -123,14 +123,14 @@ const Modify = function(options) {
}; };
/** /**
* @type {ol.EventsConditionType} * @type {module:ol/events/condition~Condition}
* @private * @private
*/ */
this.deleteCondition_ = options.deleteCondition ? this.deleteCondition_ = options.deleteCondition ?
options.deleteCondition : this.defaultDeleteCondition_; options.deleteCondition : this.defaultDeleteCondition_;
/** /**
* @type {ol.EventsConditionType} * @type {module:ol/events/condition~Condition}
* @private * @private
*/ */
this.insertVertexCondition_ = options.insertVertexCondition ? this.insertVertexCondition_ = options.insertVertexCondition ?

View File

@@ -76,7 +76,7 @@ const MouseWheelZoom = function(opt_options) {
/** /**
* @private * @private
* @type {ol.EventsConditionType} * @type {module:ol/events/condition~Condition}
*/ */
this.condition_ = options.condition ? options.condition : always; this.condition_ = options.condition ? options.condition : always;

View File

@@ -99,25 +99,25 @@ const Select = function(opt_options) {
/** /**
* @private * @private
* @type {ol.EventsConditionType} * @type {module:ol/events/condition~Condition}
*/ */
this.condition_ = options.condition ? options.condition : singleClick; this.condition_ = options.condition ? options.condition : singleClick;
/** /**
* @private * @private
* @type {ol.EventsConditionType} * @type {module:ol/events/condition~Condition}
*/ */
this.addCondition_ = options.addCondition ? options.addCondition : never; this.addCondition_ = options.addCondition ? options.addCondition : never;
/** /**
* @private * @private
* @type {ol.EventsConditionType} * @type {module:ol/events/condition~Condition}
*/ */
this.removeCondition_ = options.removeCondition ? options.removeCondition : never; this.removeCondition_ = options.removeCondition ? options.removeCondition : never;
/** /**
* @private * @private
* @type {ol.EventsConditionType} * @type {module:ol/events/condition~Condition}
*/ */
this.toggleCondition_ = options.toggleCondition ? options.toggleCondition : shiftKeyOnly; this.toggleCondition_ = options.toggleCondition ? options.toggleCondition : shiftKeyOnly;

View File

@@ -153,15 +153,6 @@ ol.CircleRenderOptions;
ol.DeclutterGroup; ol.DeclutterGroup;
/**
* A function that takes a {@link module:ol/MapBrowserEvent~MapBrowserEvent} and two
* {@link module:ol~Pixel}s and returns a `{boolean}`. If the condition is met,
* true should be returned.
* @typedef {function(module:ol/MapBrowserEvent~MapBrowserEvent, module:ol~Pixel, module:ol~Pixel):boolean}
*/
ol.DragBoxEndConditionType;
/** /**
* Function that takes an array of coordinates and an optional existing geometry as * Function that takes an array of coordinates and an optional existing geometry as
* arguments, and returns a geometry. The optional existing geometry is the * arguments, and returns a geometry. The optional existing geometry is the
@@ -173,15 +164,6 @@ ol.DragBoxEndConditionType;
ol.DrawGeometryFunctionType; ol.DrawGeometryFunctionType;
/**
* A function that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a
* `{boolean}`. If the condition is met, true should be returned.
*
* @typedef {function(module:ol/MapBrowserEvent~MapBrowserEvent): boolean}
*/
ol.EventsConditionType;
/** /**
* @typedef {{x: number, xunits: (ol.style.IconAnchorUnits|undefined), * @typedef {{x: number, xunits: (ol.style.IconAnchorUnits|undefined),
* y: number, yunits: (ol.style.IconAnchorUnits|undefined), * y: number, yunits: (ol.style.IconAnchorUnits|undefined),