// deck.gl-community // SPDX-License-Identifier: MIT // Copyright (c) vis.gl contributors import {StartDraggingEvent} from '../edit-modes/types'; import {EditAction} from './mode-handler'; import {TranslateHandler} from './translate-handler'; // TODO edit-modes: delete handlers once EditMode fully implemented export class DuplicateHandler extends TranslateHandler { handleStartDragging(event: StartDraggingEvent): EditAction | null | undefined { if (!this._isTranslatable) { return null; } this._geometryBeforeTranslate = this.getSelectedFeaturesAsFeatureCollection(); return this._geometryBeforeTranslate ? this.getAddManyFeaturesAction(this._geometryBeforeTranslate) : null; } getCursor({isDragging}: {isDragging: boolean}): string { if (this._isTranslatable) { return 'copy'; } return isDragging ? 'grabbing' : 'grab'; } }