/** * @typedef {Object} ModifyEventItem * @property {olFeature} features */ /** * @typedef {import('ngeo/CustomEvent').default} ModifyEvent */ /** * @typedef {Object} Options * @property {import('ol/events/condition').Condition} [condition] From ol/interaction/Modify.Options. * @property {import('ol/events/condition').Condition} [deleteCondition] From ol/interaction/Modify.Options. * @property {import('ol/events/condition').Condition} [insertVertexCondition] From ol/interaction/Modify.Options. * @property {number} [pixelTolerance=10] From ol/interaction/Modify.Options. * @property {import('ol/style/Style').StyleLike} [style] From ol/interaction/Modify.Options. * @property {import('ol/source/Vector').default} [source] From ol/interaction/Modify.Options. * @property {import('ol/Collection').default>} [features] From ol/interaction/Modify.Options. * @property {boolean} [wrapX=false] From ol/interaction/Modify.Options. * @property {number} [nbPoints=64] The number of points in the circle. */ /** * This interaction combines multiple kind of feature modification interactions * in order to be able to modify vector features depending on their geometry * type. The different kind of interactions supported are: * * - `ol.interaction.Modify` * - `ngeo.interaction.ModifyCircle` * - `ngeo.interaction.ModifyRectangle` * * This interaction receives a collection of features. Its job is to listen * to added/removed features to and from it and add them in the proper * collection that is uniquely used for each inner interaction. Those inner * interactions follow the `active` property of this interaction, i.e. when * this interaction is activated, so do the inner interactions. Since they will * never share the same feature, they don't collide with one an other. * * @hidden */ export default class _default extends olInteractionInteraction { /** * @param {Options} options Options. */ constructor(options: Options); /** * @type {import('ol/Collection').default>} * @private */ private features_; /** * @type {import('ol/events').EventsKey[]} * @private */ private listenerKeys_; /** * @type {import('ol/interaction/Interaction').default[]} * @private */ private interactions_; /** * @type {import('ol/Collection').default>} * @private */ private otherFeatures_; /** * @type {import('ol/Collection').default>} * @private */ private circleFeatures_; /** * @type {import('ol/Collection').default>} * @private */ private rectangleFeatures_; /** * Toggle interactions. * * @private */ private setState_; /** * @param {Event|import('ol/events/Event').default} evt Event. * @private */ private handleFeaturesAdd_; /** * @param {Event|import('ol/events/Event').default} evt Event. * @private */ private handleFeaturesRemove_; /** * @param {olFeature} feature Feature. * @private */ private addFeature_; /** * @param {olFeature} feature Feature. * @private */ private removeFeature_; /** * @param {olFeature} feature Feature. * @returns {import('ol/Collection').default>} Collection of features for * this feature. * @private */ private getFeatureCollection_; } export type ModifyEventItem = { features: olFeature; }; export type ModifyEvent = import("ngeo/CustomEvent").default; export type Options = { /** * From ol/interaction/Modify.Options. */ condition?: import("ol/events/condition").Condition; /** * From ol/interaction/Modify.Options. */ deleteCondition?: import("ol/events/condition").Condition; /** * From ol/interaction/Modify.Options. */ insertVertexCondition?: import("ol/events/condition").Condition; /** * From ol/interaction/Modify.Options. */ pixelTolerance?: number; /** * From ol/interaction/Modify.Options. */ style?: import("ol/style/Style").StyleLike; /** * From ol/interaction/Modify.Options. */ source?: import("ol/source/Vector").default; /** * From ol/interaction/Modify.Options. */ features?: import("ol/Collection").default>; /** * From ol/interaction/Modify.Options. */ wrapX?: boolean; /** * The number of points in the circle. */ nbPoints?: number; }; import olInteractionInteraction from 'ol/interaction/Interaction'; import olFeature from 'ol/Feature';